/* * Date: * 2015/09/19 * Author: * Indestinee */ #include #include #include #include #include #include #include #include #include #include using namespace std; string _in = "data"; string _out = "data"; int lowbit( int x ){ return - x & x; } int a[505][505], b[505][505], n, m, q, cas; void modify( int x , int y , int d ){ for( int i = x ; i <= n ; i += lowbit(i) ) for( int j = y ; j <= m ; j += lowbit(j) ) a[i][j] ^= d; } int sum( int x , int y ){ if( x == 0 || y == 0 ) return 0; int res = 0; for( int i = x ; i ; i -= lowbit(i) ) for( int j = y ; j ; j -= lowbit(j) ) res ^= a[i][j]; return res; } int main(){ // freopen( ( _in + ".in" ).c_str() , "r" , stdin ); // freopen( ( _out + ".out" ).c_str() , "w" , stdout ); scanf( "%d" , &cas ); for( int T = 1 ; T <= cas ; T ++ ){ scanf( "%d %d %d" , &n , &m , &q ); memset( a , 0 , sizeof( a ) ); memset( b , 0 , sizeof( b ) ); for( int i = 1 ; i <= n ; i ++ ) for( int j = 1 ; j <= m ; j ++ ){ scanf( "%d" , &b[i][j] ); modify(i, j, b[i][j]); } for( int i = 1 ; i <= q ; i ++ ){ int o , x1 , x2 , y1 , y2 , z; scanf( "%d" , &o ); if( o == 1 ){ scanf( "%d %d %d %d" , &x1 , &y1 , &x2 , &y2 ); if( ( sum( x2 , y2 ) ^ sum( x1 - 1 , y2 ) ^ sum( x2 , y1 - 1 ) ^ sum( x1 - 1 , y1 - 1 ) ) ) puts( "Yes" ); else puts( "No" ); }else{ scanf( "%d %d %d" , &x1 , &y1 , &z ); modify( x1 , y1 , b[x1][y1] ^ z ); b[x1][y1] = z; } } } return 0; }