#include <stdio.h>
/*
n , m 代表行和列
k 代表 执行几次操作
t = 'r' 进行行变换
t = 'c' 进行列变换
*/
int main()
{
int tmp = 0;
int k = 0;
char t;
int a, b;
int n, m;
scanf("%d%d", &n, &m);
int arr[100][100] = { 0 };
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
scanf("%d", &arr[i][j]);
}
}
scanf("%d", &k);
for (int i = 0; i < k; i++)
{
//要是一开始不加这个空格会不执行这条语句 我也是看了很多报错才知道的
//他可能把上面的回车读取了 所以才不执行 在前面加个空格就可以隔绝它 这个bug很难发现 找了很久才找到
scanf(" %c%d%d", &t,&a,&b);//这个bug很重要 要记住
//进行 '行' 变换
if (t == 'r')
for (int j = 0; j < m; j++)
{
tmp = arr[a - 1][j];
arr[a - 1][j] = arr[b - 1][j];
arr[b - 1][j] = tmp;
}
//进行 '列' 变换
else if (t == 'c')
{
for (int i = 0; i < n; i++)
{
tmp = arr[i][a - 1];
arr[i][a - 1] = arr[i][b - 1];
arr[i][b - 1] = tmp;
}
}
}
for (int i = 0; i < n; i++)
{
for (int j = 0; j < m; j++)
{
printf("%d ", arr[i][j]);
}
printf("\n");
}
return 0;
}