func_code_string: #include <bits/stdc++.h>   using namespace std;   const int max_n = 1005;   int n, m, k, now;   char s[max_n], a[max_n][max_n], b[max_n][max_n];   int ans[max_n][max_n];   inline int gcd(int a, int b) {     if (!b)       return a;     else       return gcd(b, a % b);   }   int main() {     scanf( %d%d%d n , &n, &m, &k);     for (int i = 1; i <= 2 * n - 1; ++i) {       gets(s);       if (i % 2 != 0) {         now = i / 2 + 1;         for (int j = 1; j < m; ++j) a[now][j] = s[j - 1];       } else {         now = i / 2;         for (int j = 1; j <= m; ++j) b[now][j] = s[j - 1];       }     }     if (k == 1) {       int cnt = 0;       for (int i = 1; i <= n; ++i)         for (int j = 1; j < m; ++j)           if (a[i][j] ==  E ) cnt++;       for (int i = 1; i < n; ++i)         for (int j = 1; j <= m; ++j)           if (b[i][j] ==  E ) cnt++;       int t1 = 4;       int t2 = n * (m - 1) + m * (n - 1);       int t = gcd(t1, t2);       int tt = t1 * t2 / t;       int tmp1 = 3 * (tt / t1);       int tmp2 = cnt * (tt / t2);       if (tmp1 > tmp2)         printf( NO n );       else {         printf( YES n );         for (int i = 1; i <= n; ++i)           for (int j = 1; j <= m; ++j) printf( %d%c , 1,    n [j == m]);       }       return 0;     }     if (n > m) {       for (int i = 1; i <= m; ++i) {         ans[1][i] = 0;         for (int j = 1; j < n; ++j)           if (b[j][i] ==  E )             ans[j + 1][i] = ans[j][i];           else             ans[j + 1][i] = ans[j][i] ^ 1;       }       for (int i = 1; i < m; ++i) {         int cnt = 0;         for (int j = 1; j <= n; ++j)           if (a[j][i] ==  E ) {             if (ans[j][i] != ans[j][i + 1]) cnt++;           } else {             if (ans[j][i] == ans[j][i + 1]) cnt++;           }         if (cnt > n / 2)           for (int j = 1; j <= n; ++j) ans[j][i + 1] ^= 1;       }     } else {       for (int i = 1; i <= n; ++i) {         ans[i][1] = 0;         for (int j = 1; j < m; ++j)           if (a[i][j] ==  E )             ans[i][j + 1] = ans[i][j];           else             ans[i][j + 1] = ans[i][j] ^ 1;       }       for (int i = 1; i < n; ++i) {         int cnt = 0;         for (int j = 1; j <= m; ++j)           if (b[i][j] ==  E ) {             if (ans[i][j] != ans[i + 1][j]) cnt++;           } else {             if (ans[i][j] == ans[i + 1][j]) cnt++;           }         if (cnt > m / 2)           for (int j = 1; j <= m; ++j) ans[i + 1][j] ^= 1;       }     }     printf( YES n );     for (int i = 1; i <= n; ++i)       for (int j = 1; j <= m; ++j) printf( %d%c , ans[i][j] + 1,    n [j == m]);   }   