#include <stdio.h>

int main() {
    int n, m;
    int k;
    int i, j;
    int a, b;
    int Arr[10][10];
    char t;

    scanf("%d%d", &n, &m);
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            scanf("%d", &Arr[i][j]);
        }
    }

    scanf("%d", &k);
    // 进行 k 次操作
    while (k > 0) {
        // 使用之前先清除换行符
        getchar(); // 清除缓冲区中的换行符
        scanf("%c%d%d", &t, &a, &b);
        a--;
        b--;
        if (t == 'r') {
            // 处理行交换
            int temp;
            for (j = 0; j < m; j++) {
                temp = Arr[a][j];
                Arr[a][j] = Arr[b][j];
                Arr[b][j] = temp;
            }
        } else if (t == 'c') {
            // 处理列交换
            int temp;
            for (i = 0; i < n; i++) {
                temp = Arr[i][a];
                Arr[i][a] = Arr[i][b];
                Arr[i][b] = temp;
            }
        }
        k--;
    }

    // 打印结果矩阵
    for (i = 0; i < n; i++) {
        for (j = 0; j < m; j++) {
            printf("%d ", Arr[i][j]);
        }
        printf("\n");
    }
    return 0;
}
//不要忘记了行和列要-1
//求佛