#include<stdio.h>
int main()
{
    int n = 0; 
    int m = 0; 
    scanf("%d %d",&n,&m);
    int arr[10][10] = {0};
    int i = 0;
    for(i = 0;i<n;i++)
    {
        int j = 0;
        for(j = 0;j<m;j++)
            scanf("%d ",&arr[i][j]);
    }
    
    int k = 0;
    scanf("%d",&k);
    while(k--)
    {
        char t = 0;
        int a = 0; //要变换的行号or列号
        int b = 0; //要变换的行号or列号
        scanf(" %c %d %d", &t, &a, &b);
        if (t == 'r') //行变换
        {
            a--; //计算出对应行号数组的下标
            b--; //计算出对应行号数组的下标
            int j = 0;
            for(j = 0;j<m;j++)
            {
                int tmp = arr[a][j];
                arr[a][j] = arr[b][j];
                arr[b][j] = tmp;
            }
            
        }
        else if(t == 'c') //列变换
        {
            a--; //计算出对应行号数组的下标
            b--; //计算出对应行号数组的下标
            int j = 0;
            for(j = 0;j<n;j++)
            {
                int tmp = arr[j][a];
                arr[j][a] = arr[j][b];
                arr[j][b] = tmp;
            }
        }
    }
   for(i = 0;i<n;i++) //打印数组
    {
        int j = 0;
        for(j = 0;j<m;j++)
            printf("%d ",arr[i][j]);
       printf("\n"); //每打印一行都要换行
    }
    return 0;
}