func_code_string: #include <bits/stdc++.h>   using namespace std;   int m, n;   char a[1005][1005];   int f[1005][1005];   int cc;   int g[1000005];   bool ok[15];   vector<int> s[1000005];   int ki[4] = {0, 0, 1, -1};   int kj[4] = {1, -1, 0, 0};   int main() {     scanf( %d%d , &m, &n);     for (int i = 1; i <= m; i++)       for (int j = 0; j <= n; j++) scanf( %c , &a[i][j]);     int cc = 0;     memset(f, -1, sizeof(f));     for (int i = 1; i <= m; i++)       for (int j = 1; j <= n - 1; j++)         if (a[i][j] ==  .  && a[i][j + 1] ==  .  && f[i][j] == -1 &&             f[i][j + 1] == -1)           cc++, f[i][j] = f[i][j + 1] = cc;     for (int i = 1; i <= m - 1; i++)       for (int j = 1; j <= n; j++)         if (a[i][j] ==  .  && a[i + 1][j] ==  .  && f[i][j] == -1 &&             f[i + 1][j] == -1)           cc++, f[i][j] = f[i + 1][j] = cc;     for (int i = 1; i <= m; i++)       for (int j = 1; j <= n; j++)         if (a[i][j] ==  # )           f[i][j] = -2;         else if (f[i][j] == -1) {           for (int k = 0; k <= 3; k++)             if (f[i + ki[k]][j + kj[k]] >= 0) {               f[i][j] = f[i + ki[k]][j + kj[k]];               break;             }           if (f[i][j] == -1) {             cout << -1;             return 0;           }         }     memset(g, -1, sizeof(g));     for (int i = 1; i <= m; i++)       for (int j = 1; j <= n; j++) {         if (i < m && f[i][j] >= 0 && f[i + 1][j] >= 0 && f[i][j] != f[i + 1][j])           s[f[i][j]].push_back(f[i + 1][j]), s[f[i + 1][j]].push_back(f[i][j]);         if (j < n && f[i][j] >= 0 && f[i][j + 1] >= 0 && f[i][j] != f[i][j + 1])           s[f[i][j]].push_back(f[i][j + 1]), s[f[i][j + 1]].push_back(f[i][j]);       }     for (int u = 1; u <= cc; u++) {       memset(ok, true, sizeof(ok));       for (typeof(s[u].begin()) v = s[u].begin(); v != s[u].end(); v++)         if (g[*v] >= 0) ok[g[*v]] = false;       for (int i = 0; i <= 9; i++)         if (ok[i]) {           g[u] = i;           break;         }     }     for (int i = 1; i <= m; i++) {       for (int j = 1; j <= n; j++)         if (f[i][j] == -2)           printf( # );         else           printf( %d , g[f[i][j]]);       printf(  n );     }     return 0;   }   