using System;
using System.Text;
using System.Collections.Generic;

class Program
{
    static void Main()
    {
        var dimenzije = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
        var redoviIKolone = new List<Tuple<int, int>>();
        int[] nizovi;
        for (int i = 0; i < dimenzije[0] + dimenzije[1]; i++)
        {
            nizovi = Array.ConvertAll(Console.ReadLine().Split(' '), int.Parse);
            redoviIKolone.Add(Tuple.Create(nizovi[0], nizovi[1]));
        }
        var suma = 0; var max = 0; var brojac = 0;
        var izlaz = new StringBuilder();
        for (int i = 0; i < dimenzije[0]; i++)
        {
            for (int j = dimenzije[0]; j < dimenzije[0] + dimenzije[1]; j++)
            {
                max = Math.Min(Math.Max(redoviIKolone[i].Item1, redoviIKolone[i].Item2), Math.Max(redoviIKolone[j].Item1, redoviIKolone[j].Item2));
                if (max != 0)
                {
                    izlaz.Append(i + 1);
                    izlaz.Append(' ');
                    izlaz.Append(j - dimenzije[0] + 1);
                    izlaz.Append(' ');
                    izlaz.Append(max);
                    izlaz.AppendLine();
                    suma += max;
                    brojac++;
                }
            }
        }
        Console.WriteLine(suma);
        Console.WriteLine(brojac);
        Console.Write(izlaz);
        Console.ReadLine();
    }
}