#include <stdio.h>
int main() 
{
    int n,m;
    scanf("%d %d",&n,&m);
    int i=0;
    int j=0;
    int arr[n][m];
    //输入
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            scanf("%d",&arr[i][j]);
        }
    }
    int cnt=0;
    scanf("%d",&cnt); //改变次数
    char ch;
    int x,y;
    int swap; //交换数
    for(i=0;i<cnt;i++)
    {
        //getchar(); 
        //getchar只吸收掉前面一次输入的换行,注意只有一次
        //在后面加scanf前面多加个空格,可以预防多次
        scanf(" %c %d %d",&ch,&x,&y);
        //修改
        if(ch =='r') //行变换
        {
            for(j=0;j<m;j++)  //不要用i
            {
                swap=arr[x-1][j];
                arr[x-1][j]=arr[y-1][j];
                arr[y-1][j]=swap;
            }
        }
        else if(ch =='c') //列变换
        {
            for(j=0;j<n;j++)  //不要用i
            {
                swap=arr[j][x-1];
                arr[j][x-1]=arr[j][y-1];
                arr[j][y-1]=swap;
            }
        }
    }
    //输出
    for(i=0;i<n;i++)
    {
        for(j=0;j<m;j++)
        {
            printf("%d ",arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}