#include<bits/stdc++.h>
#define ll long long
using namespace std;
int n,m,k;
int t[1000];
int a[2001][2001],b[2001][2001];
int x[1000],y[1000];
bool check() {
for(int i=1; i<=n; i++)
for(int j=1; j<=m; j++) {
if(b[i+1000][j+1000]==0)
return 0;
}
return 1;
}
void f(int x,int y,int t) {
memset(b,0,sizeof(b));
b[x+1000][y+1000]=1;
int s=0,k=1,p=2,xx=x,yy=y;
if(t==0) {
while(1) {
s++;
while(k<=s) {
b[xx+1000-1][yy+1000]=p;
p++;
k++;
xx--;
}
k=1;
while(k<=s) {
b[xx+1000][yy+1000+1]=p;
p++;
k++;
yy++;
}
k=1;
s++;
while(k<=s) {
b[xx+1000+1][yy+1000]=p;
p++;
k++;
xx++;
}
k=1;
while(k<=s) {
b[xx+1000][yy+1000-1]=p;
p++;
k++;
yy--;
}
k=1;
if(check())
break;
}
} else {
while(1) {
s++;
while(k<=s) {
b[xx+1000-1][yy+1000]=p;
p++;
k++;
xx--;
}
k=1;
while(k<=s) {
b[xx+1000][yy+1000-1]=p;
p++;
k++;
yy--;
}
k=1;
s++;
while(k<=s) {
b[xx+1000+1][yy+1000]=p;
p++;
k++;
xx++;
}
k=1;
while(k<=s) {
b[xx+1000][yy+1000+1]=p;
p++;
k++;
yy++;
}
k=1;
if(check())
break;
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
a[i+1000][j+1000]=min(a[i+1000][j+1000],b[i+1000][j+1000]);
}
}
}
int main() {
//freopen("Spirale.in","r",stdin);
//freopen("Spirale.out","w",stdout);
memset(a,0x3f3f3f3f,sizeof(a));
cin>>n>>m>>k;
for(int i=1; i<=k; i++) {
cin>>x[i]>>y[i]>>t[i];
a[x[i]+1000][y[i]+1000]=1;
}
for(int i=1; i<=k; i++) {
f(x[i],y[i],t[i]);
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
cout<<a[i+1000][j+1000]<<' ';
}
cout<<endl;
}
return 0;
}