#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;
}