#include #include #include using namespace std ; #define clr( a , x ) memset ( a , x , sizeof a ) const int MAXN = 1005 ; int G[MAXN][MAXN] ; int n , m ; void solve () { scanf ( "%d%d" , &n , &m ) ; for ( int i = 1 ; i <= n ; ++ i ) { for ( int j = 1 ; j <= m ; ++ j ) { scanf ( "%d" , &G[i][j] ) ; } } for ( int i = 1 ; i <= m ; ++ i ) { G[1][i] ^= 1 ; } for ( int i = 2 ; i <= n ; ++ i ) { G[i][m] ^= 1 ; } int ans = 0 ; for ( int i = 1 ; i <= n ; ++ i ) { for ( int j = 1 ; j <= m ; ++ j ) { ans += G[i][j] == 1 ; } } ans -= G[n][m] == 1 ; ans &= 1 ; if ( G[n][m] == 1 && ans || G[n][m] == 0 && !ans ) printf ( "YES\n" ) ; else printf ( "NO\n" ) ; } int main () { int T ; scanf ( "%d" , &T ) ; for ( int i = 1 ; i <= T ; ++ i ) { solve () ; } return 0 ; }