#include #include #include #include #include #include using namespace std; int main() { map row; map col; map >mm; int tt,t,n,m,k,rr,cc,a,b,c,Q,x,y; while(~scanf("%d",&t)) { tt=0; while(t--) { mm.clear(); row.clear(); col.clear(); scanf("%d%d%d",&n,&m,&k); rr=0; cc=0; while(k--) { scanf("%d%d%d",&a,&b,&c); if(!row[a])//离散化 { row[a]=++rr; x=rr; } else x=row[a]; if(!col[b]) { col[b]=++cc; y=cc; } else y=col[b]; mm[x][y]=c; } scanf("%d",&Q); printf("Case #%d:\n",++tt); while(Q--) { scanf("%d%d%d",&a,&b,&c); if(a==1) { int ans=row[c]; row[c]=row[b]; row[b]=ans; } else if(a==2) { int ans=col[c]; col[c]=col[b]; col[b]=ans; } else { printf("%d\n",mm[row[b]][col[c]]); } } } } return 0; }