#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long LL; const int maxn = 1e3+10; pair heng[maxn]; pair shu[maxn]; int map[maxn][maxn]; int main() { int T,n,m,q,x,y,as; scanf("%d",&T); while(T--) { scanf("%d%d%d",&n,&m,&q); for(int i=1; i<=n; i++) { for(int j=1; j<=m; j++) { scanf("%d",&map[i][j]); } } for(int i=1; i<=n; i++) heng[i].first=i,heng[i].second=0; for(int i=1;i<=m;i++) shu[i].first=i,shu[i].second=0; while(q--) { scanf("%d%d%d",&as,&x,&y); if(as==1) { swap(heng[x],heng[y]); } else if(as==2) { swap(shu[x],shu[y]); } else if(as==3) { heng[x].second+=y; } else { shu[x].second+=y; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { map[heng[i].first][j]+=heng[i].second; } } for(int i=1;i<=m;i++) { for(int j=1;j<=n;j++) { map[j][shu[i].first]+=shu[i].second; } } for(int i=1;i<=n;i++) { for(int j=1;j<=m;j++) { printf("%d",map[heng[i].first][shu[j].first]); if(j!=m) printf(" "); } printf("\n"); } } return 0; }