#include<stdlib.h>
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
const int maxsize = 401;
struct Triple{
int row,col,value;
bool operator< (const Triple &x)const{
if(row == x.row){
return col < x.col;
}
return row < x.row;
}
};
struct TSMatrix{
Triple data[maxsize];
int m,n,len;
};
int main()
{
//freopen("in1.txt","r",stdin);
TSMatrix A;
int m,n;
cin>>m>>n;
int t1,t2;
int r,c,v;
cin>>t1>>t2;
int i = 0,k;
while(t1--){
cin>>r>>c>>v;
A.data[i].row = r;
A.data[i].col = c;
A.data[i].value = v;
++i;
}
while(t2--){
cin>>r>>c>>v;
for(k = 0;k<i;k++){
if(A.data[k].row == r&&A.data[k].col==c){
A.data[k].value+=v;
break;
}
}
if(k==i){
A.data[i].row = r;
A.data[i].col = c;
A.data[i].value = v;
++i;
}
}
A.len = i;
sort(A.data,A.data+i);
for(i = 0;i<A.len;i++){
cout<<A.data[i].row<<" "<<A.data[i].col<<" "<<A.data[i].value<<endl;
}
return 0;
}