func_code_string: #include <bits/stdc++.h>   using namespace std;   const int maxn = 1050;   int n, m, g[maxn][maxn], ans[maxn][maxn];   int p[4] = {4, 3, 2, 1};   bool chk1(int x, int a, int b) {     int i, st, c[2] = {a, b};     for (st = 0; st < m && !g[x][st]; st++)       ;     if (g[x][st] != c[0]) swap(c[0], c[1]);     for (i = 0; st + i < m; i++)       if (g[x][st + i] && g[x][st + i] != c[i & 1])         return 0;       else         ans[x][st + i] = c[i & 1];     for (i = 1; i <= st; i++) ans[x][st - i] = c[i & 1];     return 1;   }   bool chk2(int x, int a, int b) {     int i, st, c[2] = {a, b};     for (st = 0; st < n && !g[st][x]; st++)       ;     if (g[st][x] != c[0]) swap(c[0], c[1]);     for (i = 0; st + i < n; i++)       if (g[st + i][x] && g[st + i][x] != c[i & 1])         return 0;       else         ans[st + i][x] = c[i & 1];     for (i = 1; i <= st; i++) ans[st - i][x] = c[i & 1];     return 1;   }   void print() {     int i, j;     for (i = 0; i < n; i++) {       for (j = 0; j < m; j++) printf( %d , ans[i][j]);       printf(  n );     }   }   bool check() {     int i, j;     bool z = 1;     for (i = 0; i < n; i++) z &= chk1(i, p[(i & 1) * 2], p[(i & 1) * 2 + 1]);     if (z) {       print();       return 1;     }     z = 1;     for (i = 0; i < m; i++) z &= chk2(i, p[(i & 1) * 2], p[(i & 1) * 2 + 1]);     if (z) {       print();       return 1;     }     return 0;   }   int main() {     int i, j;     scanf( %d%d n , &n, &m);     for (i = 0; i < n; i++) {       for (j = 0; j < m; j++) g[i][j] = getchar() -  0 ;       scanf(  n );     }     for (i = 0; i < 4 * 3 * 2; i++) {       next_permutation(p, p + 4);       if (check()) return 0;     }     printf( 0 n );     return 0;   }   