func_code_string: #include <bits/stdc++.h>   using namespace std;   const int dx[] = {-1, 1, 0, 0};   const int dy[] = {0, 0, -1, 1};   const int max_n = 1000;   char a[max_n][max_n];   int res[max_n][max_n], val[max_n * max_n];   vector<pair<int, int> > comp[max_n * max_n];   bool used[10];   bool range(int x, int l, int r) { return ((l <= x) && (x <= r)); }   int main() {     int n, m, r = 0;     scanf( %d%d n , &n, &m);     for (int i = 0; i < n; ++i) {       for (int j = 0; j < m; ++j) scanf( %c , &a[i][j]);       scanf(  n );     }     memset(res, -1, sizeof(res));     for (int i = 0; i < n; ++i)       for (int j = 0; j < m; ++j)         if (a[i][j] ==  . )           if ((j < m - 1) && (a[i][j + 1] ==  . )) {             res[i][j] = res[i][j + 1] = r++, a[i][j] = a[i][j + 1] =  ~ ;           } else if ((i < n - 1) && (a[i + 1][j] ==  . ))             res[i][j] = res[i + 1][j] = r++, a[i][j] = a[i + 1][j] =  ~ ;           else {             for (int d = 0; d < 4; ++d)               if (range(i + dx[d], 0, n - 1) && range(j + dy[d], 0, m - 1) &&                   (a[i + dx[d]][j + dy[d]] !=  # )) {                 res[i][j] = res[i + dx[d]][j + dy[d]];                 break;               }             if (res[i][j] != -1) continue;             printf( -1 n );             return 0;           }     for (int i = 0; i < n; ++i)       for (int j = 0; j < m; ++j)         if (res[i][j] != -1) comp[res[i][j]].push_back(make_pair(i, j));     for (int rc = 0; rc < r; ++rc) {       memset(used, 0, sizeof(used));       for (int k = 0; k < (int)comp[rc].size(); ++k)         for (int d = 0; d < 4; ++d) {           int cur = res[comp[rc][k].first + dx[d]][comp[rc][k].second + dy[d]];           if (cur < rc) used[val[cur]] = true;         }       for (int k = 0; k < 10; ++k)         if (!used[k]) {           val[rc] = k;           break;         }     }     for (int i = 0; i < n; ++i) {       for (int j = 0; j < m; ++j)         printf( %c , res[i][j] == -1 ?  #  :  0  + val[res[i][j]]);       printf(  n );     }     return 0;   }   