#include <bits/stdc++.h>
using namespace std;

long long a1[60000], b1[60000], c1[60000], d1[60000], *a, *b, *c, *d;
map<pair<int, int>, int> r;
vector<pair<pair<int, int>, int> > o;

int main() {
    ios::sync_with_stdio(false); cin.tie(0); cout.tie(0);
    long long n, m, s1=0, s2=0, k=0, s=0, t, l=1;
    cin>>n>>m;
    for(int i=1; i<=n; i++) cin>>a1[i]>>b1[i];
    for(int i=1; i<=m; i++) cin>>c1[i]>>d1[i];
    for(int i=1; i<=n; i++) s1+=b1[i];
    for(int i=1; i<=m; i++) s2+=d1[i];
    if(s1<=s2) {
        a=a1;
        b=b1;
        c=c1;
        d=d1;
        k=0;
    }
    if(s1>s2) {
        a=c1;
        b=d1;
        c=a1;
        d=b1;
        k=n;
        n=m;
        m=k;
        k=s1;
        s1=s2;
        s2=k;
        k=1;
    }
    for(int i=1; i<=n; i++) {
        for(int j=l; j<=m; j++) {
            if(b[i]==0) break;
            t=min(c[j], b[i]);
            r[make_pair(i, j)]+=t;
            b[i]-=t;
            c[j]-=t;
            d[j]-=t;
            if(c[j]==0) l++;
            if(l>m) {
                for(int g=1; g<=m; g++) {
                    c[g]=d[g];
                }
                i--;
                l=1;
            }
        }
    }
    for(auto i:r) {
        o.push_back(i);
    }
    cout<<s1<<'\n'<<o.size()<<'\n';
    for(int i=0; i<o.size(); i++) {
        if(k==0) {
            cout<<o[i].first.first<<' '<<o[i].first.second<<' '<<o[i].second;
        }
        else {
            cout<<o[i].first.second<<' '<<o[i].first.first<<' '<<o[i].second;
        }
        cout<<'\n';
    }
    return 0;
}