#include #include #include #include #include using namespace std; inline int read() { int x=0, f=0; char ch=getchar(); while (ch<'0' || ch>'9') f|=(ch=='-'), ch=getchar(); while ('0'<=ch && ch<='9') x=x*10+ch-'0', ch=getchar(); return f?-x:x; } typedef long long ll; typedef pair Pii; #define rep(i, l, r) for(int i=l; i<=r; i++) #define dow(i, l, r) for(int i=l; i>=r; i--) #define travel(x) for(edge *p=fir[x]; p; p=p->n) #define clr(x,c) memset(x, c, sizeof(x)) #define pb push_back #define all(x) (x).begin(),(x).end() #define maxn 1009 int n, m, Q, k[maxn][maxn], a[maxn], b[maxn], c[maxn], d[maxn]; int main() { int t=read(); while (t--) { n=read(), m=read(), Q=read(); clr(c,0); clr(d,0); rep(i, 1, n) rep(j, 1, m) k[i][j]=read(); rep(i, 1, n) a[i]=i; rep(i, 1, m) b[i]=i; rep(i, 1, Q) { int op=read(), x=read(), y=read(); if (op==1) swap(a[x], a[y]); if (op==2) swap(b[x], b[y]); if (op==3) c[a[x]]+=y; if (op==4) d[b[x]]+=y; } rep(i, 1, n) rep(j, 1, m) printf("%d%c", k[a[i]][b[j]]+c[a[i]]+d[b[j]], j==m?'\n':' '); } return 0; }