#include <bits/stdc++.h>


using namespace std;

typedef long long int ll;

ll D[100][100];

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(NULL);

    int n;
    int m;
    cin >> n >> m;
    fflush(stdin);
    ll maxvrsta = 0;
    ll maxkolona = 0;

    vector<pair<ll, ll>> vrsta(n);
    vector<pair<ll, ll>> kolona(m);

    for(int i = 0; i < n; i++){

        int x, y;

        cin >> x;

        cin >> y;


        vrsta[i].first = x;
        vrsta[i].second = y;

        maxvrsta+= x;
    }

    for(int i = 0; i < m; i++){
        int x, y;
        cin >> x;

        cin >> y;


        vrsta[i].first = x;
        vrsta[i].second = y;

        maxkolona += x;

    }

    ll maxkrompira= min(maxkolona, maxvrsta);

    cout << maxkrompira << endl;

    if(n == m){
        cout << 1 << " " << 1 " " << min(vrsta[0].second,kolona[0].second);
        return 0;
    }

    if(n == 1){

        for(int j = 0; j < m; j++){
            if(kolona[j].second >= vrsta[0].second){
                cout << 1 << " " << j + 1 << maxkrompira;
                return 0;
            }

            if(kolona[j].second >= vrsta[0].first){
                cout << 1 << " " << j + 1 << (vrsta[0].first - kolona[j].second);
                vrsta[0].second -= kolona[j].second;
                if(vrsta[0].second < vrsta[0].first){
                    return 0;
                }
            }
        }
    }

    //maksujemo po kolonamma
    if(maxkolona <=maxvrsta){

        for(int j = 0; j < m; j++){
            for(int i = 0; i < n; i++){
                ll pom = min(kolona[j].second, vrsta[i].second);

                if(pom <= 0){
                    continue;
                }

                cout << i + 1 << " " << j + 1 << " " << pom << endl;

                if(pom >= kolona[j].first){
                    kolona[j].first = 0;
                }

                if(pom >= vrsta[i].first){
                    vrsta[i].first = 0;
                }

                kolona[j].second -= pom;
                vrsta[i].second -= pom;

                if(kolona[j].second == 0){
                    break;
                }

                if(vrsta[i].second == 0){
                    continue;
                }
            }
        }
    }




    return 0;
}