using System; 
using System.Collections.Generic;
using System.Collections.Immutable;
using System.Linq;
using System.Windows.Markup;

class Program
{

    static void Main()
    {
        var unos1 = Console.ReadLine().Split();
        int N = int.Parse(unos1[0]);
        int M = int.Parse(unos1[1]);
        int[] Jmanje = new int[M];
        int[] Jvece = new int[M];
        int[] Imanje = new int[N];
        int[] Ivece = new int[N];
        int[,] matrica = new int[N, M];

        for(int i=0; i<N; i++)
        {
            var interval = Console.ReadLine().Split();
            Imanje[i] = int.Parse(interval[0]);
            Ivece[i] = int.Parse(interval[1]);
        }
        for(int j = 0; j<M; j++)
        {
            var interval = Console.ReadLine().Split();
            Jmanje[j] = int.Parse(interval[0]);
            Jvece[j] = int.Parse(interval[1]);
        }

        int sumaI = 0;
        int zbirUkupno = 0;
        int brojSadrzinskih = 0;
        foreach (int j in Ivece)
            sumaI += j;
        for(int i = 0; i < N; i++)
        {
            int zbirReda = 0;
            for (int j = 0; j < M; j++)
            {
                if (Jvece[j] != 0)
                {
                    matrica[i, j] = Ivece[i] * Jvece[j] / sumaI;
                    zbirReda += matrica[i, j];
                    int k = j;
                    while (k >= 0)
                    {
                        if (zbirReda > Ivece[i] || zbirReda > Jvece[k])
                        {
                            while((zbirReda > Ivece[i] || zbirReda > Jvece[k]) && (zbirReda > Imanje[i] && zbirReda > Jmanje[k]))
                            {
                                matrica[i, k]--;
                                zbirReda--;
                            }
                        }
                        k--;
                    }
                    if (matrica[i, j] != 0)
                    {
                        brojSadrzinskih++;
                    }
                }
            }
            zbirUkupno += zbirReda;
        }
        Console.WriteLine(zbirUkupno);
        Console.WriteLine(brojSadrzinskih);
        for(int i=0; i<N; i++)
        {
            for(int j=0; j<M; j++)
            {
                int ispisI = i + 1;
                int ispisJ = j + 1;
                if (matrica[i, j] != 0)
                {
                    Console.WriteLine(ispisI + " " + ispisJ + " " + matrica[i, j]);
                }
                
                
            }
        }
    }
}