#include #include #include #include #include #include #include #include #include #include #include #include #pragma comment(linker,"/STACK:102400000,102400000") using namespace std; int n,m,c[505][505],a[505][505]; int lowbit( int x ){ return x & (-x); } void modify( int x, int y, int tt,int delta ){//a[x][y]增加delta int i, j; for(i=x; i<=n; i+=lowbit(i)){ for(j=y; j<=m; j+=lowbit(j)){ c[i][j] ^= tt; } } for(i=x; i<=n; i+=lowbit(i)){ for(j=y; j<=m; j+=lowbit(j)){ c[i][j] ^= delta; } } } int sum( int x, int y ){ if(x==0 || y==0) return 0; int res = 0, i, j; for(i=x; i>0; i-=lowbit(i)){ for(j=y; j>0; j-=lowbit(j)){ res ^= c[i][j]; } } return res; } int main(){ int i,j,T,q,opt,ax,ay,bx,by; scanf("%d",&T); while(T--){ scanf("%d%d%d",&n,&m,&q); memset(c,0,sizeof(c)); for(i=1;i<=n;i++){ for(j=1;j<=m;j++){ scanf("%d",&a[i][j]); modify(i,j,0,a[i][j]); } } for(i=1;i<=q;i++){ scanf("%d",&opt); if(opt==1){ scanf("%d%d%d%d",&ax,&ay,&bx,&by); if( (sum(bx,by)^sum(bx,ay-1)^sum(ax-1,by)^sum(ax-1,ay-1)) == 0){ printf("No\n"); } else{ printf("Yes\n"); } } else{ scanf("%d%d%d",&ax,&ay,&bx); modify(ax,ay,a[ax][ay],bx); a[ax][ay]=bx; } } } return 0; }