#include <iostream>
#include <bits/stdc++.h>
/*
3 3
0 2
0 4
0 5
0 3
0 4
0 2*/
using namespace std;
vector<pair<pair<int,int>,int>> eredmeny;
void hozzaad(int x,int y,int n)
{
    //cout<<x<<" "<<y<<" "<<n<<endl;
    pair<int,int> C;
pair<pair<int,int>,int> D;
        C.first=x+1;
    C.second=y+1;
    D.first=C;
    D.second=n;
    for(int i=0;i<eredmeny.size();i++)
    {
        if(eredmeny[i].first.first==x+1&&eredmeny[i].first.second==y+1)
        {
            eredmeny[i].second+=n;
            return;
        }
    }
    //cout<<D.first.first
    eredmeny.push_back(D);
}

int main()
{
int n,m,iossz=0,jossz=0,iminossz=0,jminossz=0;
cin>>n>>m;
vector<int> A,B;
pair<int,int> C;
pair<pair<int,int>,int> D;
int Tomb[n+1][m+1];
for(int i=0;i<n;i++)
{
    int a,b;
    cin>>a>>b;
    iossz+=b;
    iminossz+=a;
    A.push_back(b);
}
for(int i=0;i<m;i++)
{
    int a,b;
    cin>>a>>b;
    jossz+=b;
    jminossz+=a;
    B.push_back(b);
}
cout<<min(jossz,iossz)<<endl;
int i=0,j=0;
int jelenlegi=min(jossz,iossz);
if(max(jminossz,iminossz)==0)
{
    i=0;j=0;
while(jelenlegi>0)
{
        if(A[i]>B[j])
        {
            if(B[j]>=jelenlegi)
            {
                hozzaad(i,j,jelenlegi);
                break;
            }
            A[i]-=B[j];
            hozzaad(i,j,B[j]);
            jelenlegi-=B[j];
            j++;
        }
        else
                    if(A[i]<B[j])
        {
            if(A[i]>=jelenlegi)
            {
                hozzaad(i,j,jelenlegi);
                break;
            }
            B[j]-=A[i];
            hozzaad(i,j,A[i]);
            jelenlegi-=A[i];
            i++;
        }
                else
        {
            if(A[i]>=jelenlegi)
            {
                hozzaad(i,j,jelenlegi);
                break;
            }
            hozzaad(i,j,A[i]);
            jelenlegi-=A[i];
            i++;
            j++;
        }
}
}

cout<<eredmeny.size()<<endl;
for(int i=0;i<eredmeny.size();i++)
{
    cout<<eredmeny[i].first.first<<" "<<eredmeny[i].first.second<<" "<<eredmeny[i].second<<endl;
}
}