#include <bits/stdc++.h>
using namespace std;
string S[55];
int chk(int H, int W) {
  if (S[H][W] == '#') {
    return 1;
  } else {
    return 0;
  }
}
char change(int num) {
  if (num == 0)
    return '0';
  else if (num == 1)
    return '1';
  else if (num == 2)
    return '2';
  else if (num == 3)
    return '3';
  else if (num == 4)
    return '4';
  else if (num == 5)
    return '5';
  else if (num == 6)
    return '6';
  else if (num == 7)
    return '7';
  else if (num == 8)
    return '8';
  else if (num == 9)
    return '9';
}
int main() {
  int H, W;
  string ans[55];
  cin >> H;
  cin >> W;
  for (int i = 1; i <= H; i++) {
    cin >> S[i];
  }
  for (int i = 1; i <= H; i++) {
    S[i] = '.' + S[i] + '.';
  }
  for (int i = 0; i <= W + 1; i++) {
    S[0] += '.';
    S[H + 1] += '.';
  }
  for (int i = 1; i <= H; i++) {
    for (int k = 1; k <= W; k++) {
      if (S[i][k] == '.')
        ans[i][k] =
            change(chk(i - 1, k - 1) + chk(i - 1, k) + chk(i - 1, k + 1) +
                   chk(i, k - 1) + chk(i, k + 1) + chk(i + 1, k) +
                   chk(i + 1, k - 1) + chk(i + 1, k + 1));
      else
        ans[i][k] = '#';
    }
  }
  for (int i = 1; i <= H; i++) {
    for (int k = 1; k <= W; k++) {
      cout << ans[i][k];
    }
    cout << "\n";
  }
  return 0;
}
