#include<bits/stdc++.h>

using namespace std;

struct Resenje{
    int x;
    int y;
    int broj;
    Resenje(int x_, int y_, int broj_){
        x = x_;
        y = y_;
        broj = broj_;
    }
};

int main(){
    int n, m;
    
    cin >> n >> m;
    
    int redoviA[n], redoviB[n], koloneA[n], koloneB[n];
    for(int i = 0; i < n; i++){
        cin >> redoviA[i] >> redoviB[i];
    }
    for(int i = 0; i < m; i++){
        cin >> koloneA[i] >> koloneB[i];
    }
    
    int k = 0;
    vector<Resenje> res;
    for(int i = 0; i < n; i++){
        for(int j = 0; j < m; j++){
            if(redoviB[i] > 0 && koloneB[j] > 0){
                k++;
                redoviB[i]--;
                koloneB[j]--;
                res.push_back(Resenje(i, j, 1));
            }
        }
    }
    
    int brojac = 0;
    for(int i = 0; i < k; i++){
        Resenje tmp = res[i];
        int dodaj = min(redoviB[tmp.x], koloneB[tmp.y]);
        redoviB[tmp.x] -= dodaj;
        koloneB[tmp.y] -= dodaj;
        res[i].broj += dodaj;
        brojac += res[i].broj;
    }
    
    
    cout << brojac << "\n" << k << "\n";
    for(int i = 0; i < k; i++){
        cout << res[i].x + 1 << " " << res[i].y + 1 << " " << res[i].broj << "\n";
    }
    
}