int main() {
//分析
//1 接收 行列数
//2 接收 元素
//3 接收k 要执行行列数变换次数
//4 t代表要执行的操作
//5 'r' 行行转换
//6 'c' 行列转换
//7. a b 代表要互换的行或列
int n,m,temp[10][10],arr[10][10];
scanf("%d %d",&n,&m);//接收行列数
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
scanf("%d",&arr[i][j]);//接收数组元素
temp[i][j]=arr[i][j];
}
}
int k=0;
scanf("%d",&k);//接收要操作的次数
char t=' ';
int a,b;
while(k--) {
scanf(" %c %d %d",&t,&a,&b);//接收操作及 需操作行列数
if(t=='r') {
for(int j=0; j<m; j++) {//交换值
temp[a-1][j]=arr[a-1][j];
arr[a-1][j]=arr[b-1][j];
arr[b-1][j]=temp[a-1][j];
}
}
else if(t=='c') {//交换值
for(int i=0; i<n; i++) {
temp[i][a-1]=arr[i][a-1];
arr[i][a-1]=arr[i][b-1];
arr[i][b-1]=temp[i][a-1];
}
}
}
for(int i=0; i<n; i++) {
for(int j=0; j<m; j++) {
printf("%d ",arr[i][j]);
}
printf("\n");
}
return 0;
}