#include <bits/stdc++.h>
using namespace std;
int n,m,a,b,c,d,makspopolju[100005],br,maxkrompira,nizx[100005],nizy[100005],brkrompira[10005];
int mat[10005][10005];

struct slog{
 int mini,maxi;
}pox[100005],poy[100005];

int main(){
 cin>>n>>m;
 for(int i=1; i<=n; i++){
  cin>>a>>b;
  pox[i].mini=a;
  pox[i].maxi=b;
 }
 for(int i=1; i<=m; i++){
  cin>>c>>d;
  poy[i].mini=c;
  poy[i].maxi=d;
 }

 for(int i=1; i<=n; i++){
  for(int j=1; j<=m; j++){
   mat[i][j]=min(pox[i].maxi,poy[j].maxi);
  }
 }

 br=0;
 for(int i=1; i<=n; i++){
  for(int j=1; j<=m; j++){
   if(mat[i][j]!=0){
    br++;
    nizx[br]=i;
    nizy[br]=j;
    brkrompira[br]=mat[i][j];
   }
   maxkrompira+=mat[i][j];
   //cout<<mat[i][j]<<" ";
  }
  //cout<<endl;
 }

 cout<<maxkrompira<<endl<<br<<endl;
 for(int i=1; i<=br; i++){
  cout<<nizx[i]<<" "<<nizy[i]<<" "<<brkrompira[i]<<endl;
 }

 return 0;
}