#include int const MAXN = 128; char f[MAXN][MAXN]; int n, m; int main() { scanf("%d %d\n", &n, &m); for (int i = 0; i < n; ++ i) scanf("%s", f[i]); for (int i = 0; i < n; ++ i) { for (int j = 0; j < m; ++ j) { if (f[i][j] == '.') { bool used[10] = { false }; for (int i1 = i - 1; i1 <= i + 1; ++ i1) for (int j1 = j - 1; j1 <= j + 1; ++ j1) if (0 <= i1 && i1 < n && 0 <= j1 && j1 < m && f[i1][j1] != '.') used[f[i1][j1] - '0'] = true; int ch = 0; while (used[ch]) ++ ch; f[i][j] = '0' + ch; } } } for (int i = 0; i < n; ++ i) printf("%s\n", f[i]); return 0; }