#include <stdio.h>
struct change 
{
	char t;
	int a;
	int b;
};
int main() 
{
    int n,m,i,j,k;
    scanf("%d%d",&n,&m);
    int f[n][m];
    for(i=0;i<n;i++)
    {
		for(j=0;j<m;j++)
		{
			scanf("%d",&f[i][j]);
		}
	}
	scanf("%d",&k);
	getchar();
	struct change chan[k];
	for(i=0;i<k;i++)
	{
		scanf(" %c %d %d",&chan[i].t,&chan[i].a,&chan[i].b);
		chan[i].a--;
		chan[i].b--;
		if(chan[i].t=='r')
		{
			for(j=0;j<m;j++)
			{
				int swap=f[chan[i].a][j];
				f[chan[i].a][j]=f[chan[i].b][j];
				f[chan[i].b][j]=swap;
			}
		}
		else if(chan[i].t=='c')
		{
			for(j=0;j<n;j++)
			{
				int swap=f[j][chan[i].a];
				f[j][chan[i].a]=f[j][chan[i].b];
				f[j][chan[i].b]=swap;
			}			
		}
		getchar();
	}
    for(i=0;i<n;i++)
    {
		for(j=0;j<m;j++)
		{
			printf("%d ",f[i][j]);
		}
		printf("\n");
	}	
	return 0;
}

用结构体来写,麻烦得很,记得吸收空格