Traversing matrix to calculate XOR values
for ( int i = 0 ; i < n ; i ++ ) { for ( int j = 0 ; j < mm ; j ++ ) { int a = i - 1 >= 0 ? xor [ i - 1 , j ] : 0 ; int b = j - 1 >= 0 ? xor [ i , j - 1 ] : 0 ; int c = ( i - 1 >= 0 && j - 1 >= 0 ) ? xor [ i - 1 , j - 1 ] : 0 ; xor [ i , j ] = m [ i , j ] ^ a ^ b ^ c ;