#include<bits/stdc++.h>//涂色游戏
using namespace std;
long long t,n,m,q,a,b,c;//行 列 操作次数
int main(){
// freopen("paint1.in","r",stdin);
// freopen("paint2.out","w",stdout);
cin>>t;
for(long long i=1;i<=t;i++){
cin>>n>>m>>q;
long long dt[n+1][m+1];
memset(dt,0,sizeof(dt));
for(long long j=1;j<=q;j++){
cin>>a>>b>>c;
if(a==0){
for(long long y=1;y<=m;y++) dt[b][y]=c;
}else{
for(long long y=1;y<=n;y++) dt[y][b]=c;
}
}
for(long long s=1;s<=n;s++){
for(long long e=1;e<=m;e++){
cout<<dt[s][e]<<" ";
}
cout<<endl;
}
}
return 0;
}
#include<bits/stdc++.h>
using namespace std;
long long t,n,m,q,a,b,c;
int main(){
cin>>t;
for(long long i=1;i<=t;i++){
cin>>n>>m>>q;
long long dt[n+1][m+1];
memset(dt,0,sizeof(dt));
for(long long j=1;j<=q;j++){
cin>>a>>b>>c;
if(a==0){
for(long long y=1;y<=m;y++) dt[b][y]=c;
}else{
for(long long y=1;y<=n;y++) dt[y][b]=c;
}
}
for(long long s=1;s<=n;s++){
for(long long e=1;e<=m;e++){
cout<<dt[s][e]<<" ";
}
cout<<endl;
}
}
return 0;
}