#include <bits/stdc++.h>

using namespace std;

struct interv{
    int Min,Max;
};

int main()
{
    int n,m;
    cin>>n>>m;
    vector<vector<int>> kert(n);
    for(int i=0;i<n;i++)
        kert.at(i).resize(m);
    interv sorok[n],oszlopok[m];
    for(int i=0;i<n;i++)
        cin>>sorok[i].Min>>sorok[i].Max;
    for(int i=0;i<m;i++)
        cin>>oszlopok[i].Min>>oszlopok[i].Max;
    int ossz=0;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            int seged=min(sorok[i].Min, oszlopok[j].Min);
            if(oszlopok[j].Max!=0&&sorok[i].Max!=0){
            kert.at(i).at(j)=seged;
            oszlopok[j].Max-=seged;
            sorok[i].Max-=seged;
            }
        }
    }
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(oszlopok[j].Max!=0&&sorok[i].Max!=0){
                int seged=min(sorok[i].Max, oszlopok[j].Max);
            kert.at(i).at(j)+=seged;
            oszlopok[j].Max-=seged;
            sorok[i].Max-=seged;
            }
        }
    }
    int k=0;
    for(vector<int> y:kert)
    {
        for(int x:y)
            if(x!=0){
                ossz+=x;
                k++;}
    }
    cout<<ossz<<endl;
    cout<<k<<endl;
    for(int i=0;i<n;i++)
    {
        for(int j=0;j<m;j++)
        {
            if(kert.at(i).at(j)!=0)
                cout<<i+1<<" "<<j+1<<" "<<kert.at(i).at(j)<<endl;
        }
    }
    return 0;
}