#include <bits/stdc++.h>
using namespace std;
string s[1010];
int cc[1010][1010], ccc[1010101], ii = 1, n, m;
int dfs(int i, int j, int c) {
  if (i < 0 || j < 0 || i >= n || j >= m) return -1;
  if (s[i][j] == '*') return -1;
  if (cc[i][j]) return cc[i][j];
  cc[i][j] = c;
  ccc[c]++;
  dfs(i + 1, j, c);
  dfs(i - 1, j, c);
  dfs(i, j + 1, c);
  dfs(i, j - 1, c);
  return c;
}
int main() {
  cin >> n >> m;
  for (int i = 0; i < n; i++) {
    cin >> s[i];
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      dfs(i, j, ii++);
    }
  }
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < m; j++) {
      if (s[i][j] == '*') {
        set<int> f;
        f.insert(dfs(i - 1, j, 0));
        f.insert(dfs(i + 1, j, 0));
        f.insert(dfs(i, j - 1, 0));
        f.insert(dfs(i, j + 1, 0));
        int u = 1;
        for (set<int>::iterator it = f.begin(); it != f.end(); it++) {
          if (*it > -1) {
            u += ccc[*it];
          }
        }
        cout << (char)('0' + (u % 10));
      } else {
        cout << '.';
      }
    }
    cout << '\n';
  }
  return 0;
}
