#include <bits/stdc++.h>
using namespace std;
char m[60][60];
int h, w;
bool f(int a, int b) {
  if (a < h && a >= 0 && b < w && b >= 0 && m[a][b] == '#') return true;
  return false;
}
int dir[8][2] = {{1, 0},  {1, 1},   {0, 1},  {-1, 1},
                 {-1, 0}, {-1, -1}, {0, -1}, {1, -1}};
int main() {
  while (~scanf("%d%d", &h, &w)) {
    getchar();
    for (int i = 0; i < h; i++) gets(m[i]);
    for (int i = 0; i < h; i++) {
      for (int j = 0; j < w; j++) {
        if (f(i, j)) {
          printf("#");
          continue;
        }
        int ans = 0;
        for (int k = 0; k < 8; k++) {
          if (f(i + dir[k][0], j + dir[k][1])) ans++;
        }
        printf("%d", ans);
      }
      printf("\n");
    }
  }
  return 0;
}
