#include <stdio.h>
int main() {
int X,Y,Z,N;
scanf("%d %d %d %d",&X,&Y,&Z,&N);
int front[X+1][Y+1];
int plan[X+1][Z+1];
int Left[Y+1][Z+1];
//初始化
for(int i=1;i<=X;i++)
for(int j=1;j<=Y;j++)
front[i][j]=0;
for(int i=1;i<=X;i++)
for(int j=1;j<=Z;j++)
plan[i][j]=0;
for(int i=1;i<=Y;i++)
for(int j=1;j<=Z;j++)
Left[i][j]=0;
//输入
while(N--)
{
int x,y,z;
scanf("%d %d %d",&x,&y,&z);
front[x][y]=1;
plan[x][z]=1;
Left[y][z]=1;
}
//输出主视图和左视图
for(int i=Y;i>=1;i--)
{
//这一行的主视图
for(int j=1;j<=X;j++)
{
if(front[j][i]==1) printf("x");
else printf(".");
}
printf(" ");
//这一行的左视图
for(int j=1;j<=Z;j++)
{
if(Left[i][j]==1) printf("x");
else printf(".");
}
printf("\n");
}
//换行间隔
printf("\n");
//输出俯视图
for(int i=1;i<=Z;i++)
{
for(int j=1;j<=X;j++)
{
if(plan[j][i]==1) printf("x");
else printf(".");
}
printf("\n");
}
return 0;
}