func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 205;   int mat[maxn][maxn], tmp[maxn][maxn];   int r[maxn], c[maxn];   int n, m;   void invRow(int row) {     for (int j = 1; j <= m; ++j) {       tmp[row][j] ^= 1;     }   }   void invCol(int col) {     for (int i = 1; i <= n; ++i) {       tmp[i][col] ^= 1;     }   }   bool solve(int x, int y) {     memset(tmp, 0, sizeof(tmp));     memset(r, 0, sizeof(r));     memset(c, 0, sizeof(c));     for (int i = x; i <= n; ++i) {       for (int j = 1; j <= m; ++j) {         if (i == x && j < y)           tmp[i][j] = 0;         else           tmp[i][j] = 1;       }     }     for (int i = 1; i <= n; ++i) r[i] = mat[i][1] ^ tmp[i][1] ^ c[1];     for (int j = 1; j <= m; ++j) c[j] = mat[1][j] ^ tmp[1][j] ^ r[1];     for (int i = 1; i <= n; ++i) {       for (int j = 1; j <= m; ++j) {         if ((r[i] ^ c[j]) != (mat[i][j] ^ tmp[i][j])) return false;       }     }     return true;   }   int main() {     scanf( %d%d , &n, &m);     for (int i = 1; i <= n; ++i) {       for (int j = 1; j <= m; ++j) {         scanf( %d , &mat[i][j]);       }     }     for (int i = 1; i <= n; ++i) {       for (int j = 1; j <= m; ++j) {         if (solve(i, j)) {           puts( YES );           for (int i = 1; i <= n; ++i) printf( %d , r[i]);           putchar(  n );           for (int j = 1; j <= m; ++j) printf( %d , c[j]);           putchar(  n );           return 0;         }       }     }     puts( NO );     return 0;   }   