#include <bits/stdc++.h>
using namespace std;
using namespace std;
typedef long long ll;
typedef vector <int> vi;
typedef pair <int,int> pii;
typedef pair<ll,ll> pll;
typedef vector<ll> vll;
#define A first
#define B second
#define PB push_back
#define MP make_pair
#define all(v) v.begin(),v.end()
#define FAST ios_base::sync_with_stdio(false),cin.tie(0),cout.tie(0);

struct rez
{
    int x;
    int y;
    int krompir;
};

int main()
{
    vector<rez> res;
    FAST
    cin>>n>>m;
    int a[n];
    int b[n];
    int c[m];
    int d[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];
    sumMin=0;
    sumMax=0;
    for(int i=0;i<m;i++) 
    {
        sumMin+=c[i];
        sumMax+=d[i];
    }
    for(int i=0;i<m;i++)
    {
        if(sumMin-c[i]+d[i]>=a[0] && sumMin-c[i]+d[i]<=b[0])
        {
            ll sum=0;
            for(int j=0;j<m;j++)
            {
                rez r;
                r.x=1;
                r.y=j+1;
                if(i!=j) r.krompir=c[j];
                else r.krompir=min(d[j],b[0]-sumMin+c[i]);
                sum+=r.krompir;
                res.PB(r);
            }
            cout<<sum<<endl<<res.size()<<endl;
            for(int j=0;j<res.size();j++) cout<<r.x<<" "<<r.y<<" "<<r.krompir<<endl;
        }
        if(sumMax-d[i]+c[i]>=a[0] && sumMax-d[i]+c[i]<=b[0])
        {
            ll sum=0;
            for(int j=0;j<m;j++)
            {
                rez r;
                r.x=1;
                r.y=j+1;
                if(i!=j) r.krompir=d[j];
                else r.krompir=min(c[j],b[0]-sumMin+d[i]);
                sum+=r.krompir;
                res.PB(r);
            }
            cout<<sum<<endl<<res.size()<<endl;
            for(int j=0;j<res.size();j++) cout<<r.x<<" "<<r.y<<" "<<r.krompir<<endl;
        }
    }
    return 0;
}