#include <bits/stdc++.h>
using namespace std;
int main() {
  int H, W;
  cin >> H >> W;
  vector<char> A(H * W);
  vector<int> B(H * W, 9);
  for (int i = 0; i < H * W; i++) {
    cin >> A.at(i);
    if (A.at(i) == '.') {
      B.at(i) = 0;
    }
  }
  for (int i = 0; i < H * W; i++) {
    if (B.at(i) == 9) {
      if (i == 0) {
        B.at(i + 1)++;
        B.at(i + W)++;
        B.at(i + W + 1)++;
      }
      if (i == W - 1) {
        B.at(i - 1)++;
        B.at(i + W)++;
        B.at(i + W - 1)++;
      }
      if (i == W * (H - 1)) {
        B.at(i - W)++;
        B.at(i - W + 1)++;
        B.at(i + 1)++;
      }
      if (i == W * H - 1) {
        B.at(i - 1)++;
        B.at(i - W)++;
        B.at(i - W - 1)++;
      }
      if (0 < i && i < W - 1) {
        B.at(i - 1)++;
        B.at(i + 1)++;
        B.at(i + W)++;
        B.at(i + W - 1)++;
        B.at(i + W + 1)++;
      }
      if (i % W == 0 && !(i == 0 || i == W * (H - 1))) {
        B.at(i - W)++;
        B.at(i - W + 1)++;
        B.at(i + 1)++;
        B.at(i + W)++;
        B.at(i + W + 1)++;
      }
      if (i % W == W - 1 && !(i == W - 1 || i == W * H - 1)) {
        B.at(i - W - 1)++;
        B.at(i - W)++;
        B.at(i - 1)++;
        B.at(i + W - 1)++;
        B.at(i + W)++;
      }
      if (W * (H - 1) < i && i < W * H - 1) {
        B.at(i - 1)++;
        B.at(i - W - 1)++;
        B.at(i - W)++;
        B.at(i - W + 1)++;
        B.at(i + 1)++;
      }
      if (!(i % W == 0 || i % W == W - 1 || i < W || i >= W * (H - 1))) {
        B.at(i - W - 1)++;
        B.at(i - W)++;
        B.at(i - W + 1)++;
        B.at(i - 1)++;
        B.at(i + 1)++;
        B.at(i + W - 1)++;
        B.at(i + W)++;
        B.at(i + W + 1)++;
      }
    }
  }
  for (int i = 0; i < H * W; i++) {
    if (B.at(i) < 9) {
      cout << B.at(i);
    } else {
      cout << '#';
    }
    if (i % W == W - 1) {
      cout << endl;
    }
  }
}
