#include <iostream>
#include <vector>

using namespace std;

int main()
{
    int n, m;
    cin>>n>>m;
    int max_zbir;
    int zbir = 0;
    int limitL[m], limitD[m];
    for(int i = 0; i < n; i++) {
        int x;
        cin>>x>>max_zbir;
    }
    for(int i = 0 ; i < m; i++) {
        cin>>limitL[i]>>limitD[i];
        zbir += limitL[i];
    }
    int ukupno = max_zbir;
    max_zbir -= zbir;
    int red[m];
    int poslednji = 0;
    int k = 0;
    for(int i = 0; i < m && max_zbir > 0; i++, poslednji++) {
        int potencijal = limitD[i] - limitL[i];
        if(potencijal >= max_zbir) {
            red[i] = limitL[i] + max_zbir;
            max_zbir = 0;
        }
        else {
            red[i] = limitL[i] + potencijal;
            max_zbir -= potencijal;
        }
        if(red[i] != 0) k++;
    }
    for(int i = poslednji; i < m; i++) {
        red[i] = limitL[i];
        if(red[i] != 0) k++;
    }
    cout<<ukupno - max_zbir<<endl;
    cout<<k<<endl;
    for(int i = 0; i < m; i++) {
        if(red[i] != 0) {
            cout<<"1 "<<i + 1<<" "<<red[i]<<endl;
        }
    }
    return 0;
}