#include #include #include #include #include #include typedef long long ll; using namespace std; const int maxn = 1e4+5; struct node{ int s,a; }; node l[maxn],r[maxn]; int a[maxn][maxn],b[maxn][maxn]; void solve(){ int t; int n,m,q; scanf("%d",&t); while(t--){ scanf("%d %d %d",&n,&m,&q); for(int i = 1; i<=n; i++){ l[i].a = 0; l[i].s = i; for(int j = 1; j<=m; j++){ scanf("%d",&a[i][j]); b[i][j] = 0; if(i == 1) r[j].a = 0,r[j].s = j; } } int p,x,y; while(q--){ scanf("%d %d %d",&p,&x,&y); if(p == 1){ swap(l[x].s,l[y].s),swap(l[x].a,l[y].a); } else if(p == 2) swap(r[x].s,r[y].s),swap(r[x].a,r[y].a); else if(p == 3) l[x].a += y; else r[x].a += y; } for(int i = 1; i<=n; i++){ for(int j = 1; j<=m; j++) { b[i][j] = a[l[i].s][r[j].s] + l[i].a + r[j].a; } } for(int i = 1; i<=n; i++){ printf("%d",b[i][1]); for(int j = 2; j<=m; j++){ printf(" %d",b[i][j]); } printf("\n"); } } } int main() { solve(); return 0; }