#include <bits/stdc++.h>

using namespace std;
#define int long long
int a[50001];
int b[50001];
int c[50001];
int d[50001];
int32_t main()
{
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    int n, m; cin >> n >> m;
    for(int i=0;i<n;i++){
        cin >> a[i] >> b[i];
    }
    for(int i=0;i<m;i++){
        cin >> c[i] >> d[i];
    }
    int curri =0, currj=0;
    int tot = min(accumulate(b,b+n,0LL),accumulate(d,d+m,0LL));
    cout << tot << '\n';
    vector<pair<pair<int,int>,int>>ans;
    int i=0, j=0;
    // popuni min

    for(;i<n && j < m;){
        if(b[i]>=d[j]){
            if(c[j])ans.push_back({{i,j},d[j]});
            b[i]-=d[j];
            j++;
            if(b[i]==0)i++;
        }
        else{
            if(b[i])ans.push_back({{i,j},b[i]});
            d[j]-=b[i];
            i++;
        }
    }
    cout << ans.size() << '\n';
    for(auto aa:ans){
        cout << aa.first.first+1 << ' ' << aa.first.second+1 << ' ' << aa.second << '\n';
    }
    return 0;
}