#include<bits/stdc++.h>
using namespace std;
struct node{
int color,qz;
}a[100005],b[100005];
int n,m,q,x,c;
bool opt;
int main(){
int t;
cin>>t;
while(t){
t--;
cin>>n>>m>>q;
int d[n+1][m+1],e[n+1][m+1];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
d[i][j]=e[i][j]=0;
}
}
for(int i=1;i<=n;i++){
b[i].color=b[i].qz=0;
}
for(int i=1;i<=n;i++){
a[i].color=a[i].qz=0;
}
for(int i=1;i<=q;i++){
cin>>opt>>x>>c;
if(opt){a[x].color=c;a[x].qz=i;}
else{b[x].color=c;b[x].qz=i;}
}
for(int i=1;i<=m;i++){
for(int j=1;j<=n;j++){
d[j][i]=a[i].color;
e[j][i]=a[i].qz;
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(b[i].qz>e[i][j]){
e[i][j]=b[i].qz;
d[i][j]=b[i].color;
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<d[i][j]<<" ";
}
cout<<endl;
}
}
return 0;
}