#include "bits/stdc++.h"
#define ll long long
#define pb push_back
using namespace std;
int n,m;
map<pair<int,int>,int> mapa;
void solve() {
    cin>>n>>m;
    int a_d[n],a_g[n],b_d[m],b_g[m];
    for(int i=0;i<n;i++){
        cin>>a_d[i]>>a_g[i];
        a_g[i]-=a_d[i];
    }
    for(int i=0;i<m;i++){
        cin>>b_d[i]>>b_g[i];
        b_g[i]-=b_d[i];
    }
    int j=0;
    ll krompiri=0;
    for(int i=0;i<n;i++){
        while(a_d[i]!=0&&j<m){
            if(b_d[j]!=0){
            int vrednost=min(a_d[i],b_d[j]);
            krompiri+=vrednost;
            mapa[make_pair(i,j)]+=vrednost;
            a_d[i]-=vrednost;
            b_d[j]-=vrednost;
            if(b_d[j]==0){
                j++;
            }
            }
            else{
                j++;
            }
        }
    }
    j=0;
    for(int i=0;i<n;i++){
        while(a_d[i]!=0&&j<m){
            if(b_g[j]!=0){
                int vrednost=min(a_d[i],b_g[j]);
                krompiri+=vrednost;
                mapa[make_pair(i,j)]+=vrednost;
                a_d[i]-=vrednost;
                b_g[j]-=vrednost;
                if(b_g[j]==0){
                    j++;
                }
            }
            else{
                j++;
            }
        }
    }
    j=0;
    for(int i=0;i<n;i++){
        while(a_g[i]!=0&&j<m){
            if(b_d[j]!=0){
                int vrednost=min(a_g[i],b_d[j]);
                krompiri+=vrednost;
                mapa[make_pair(i,j)]+=vrednost;
                a_g[i]-=vrednost;
                b_d[j]-=vrednost;
                if(b_d[j]==0){
                    j++;
                }
            }
            else{
                j++;
            }
        }
    }
    j=0;
    for(int i=0;i<n;i++){
        while(a_g[i]!=0&&j<m){
            if(b_g[j]!=0){
                int vrednost=min(a_g[i],b_g[j]);
                krompiri+=vrednost;
                mapa[make_pair(i,j)]+=vrednost;
                a_g[i]-=vrednost;
                b_g[j]-=vrednost;
                if(b_g[j]==0){
                    j++;
                }
            }
            else{
                j++;
            }
        }
    }
    int res=0;
    for(auto u:mapa){
        res++;
    }
    cout<<krompiri<<endl;
    cout<<res<<endl;
    for(auto u:mapa){
        cout<<u.first.first+1<<" "<<u.first.second+1<<" "<<u.second<<endl;
    }
}
int main () {
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    int t=1;
    /*
    cin>>t;
    //*/
    while(t--) {
        solve();
    }
}