#include <bits/stdc++.h>
using namespace std;
const long long INF = 1LL << 60;
int main() {
  int H, W;
  cin >> H >> W;
  vector<string> S(H);
  for (int i = 0; i < H; i++) {
    cin >> S[i];
  }
  vector<vector<string>> data(H, vector<string>(W));
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (S[i][j] == '#') {
        data[i][j] = '#';
      } else {
        if (i == 0 || i == H - 1 || j == 0 || j == W - 1) {
          int cnt = 0;
          if (i == 0) {
            if (S[i][j - 1] == '#') {
              cnt++;
            }
            if (S[i][j + 1] == '#') {
              cnt++;
            }
            if (S[i + 1][j - 1] == '#') {
              cnt++;
            }
            if (S[i + 1][j] == '#') {
              cnt++;
            }
            if (S[i + 1][j + 1] == '#') {
              cnt++;
            }
          } else if (i == H - 1) {
            if (S[i][j - 1] == '#') {
              cnt++;
            }
            if (S[i][j + 1] == '#') {
              cnt++;
            }
            if (S[i - 1][j - 1] == '#') {
              cnt++;
            }
            if (S[i - 1][j] == '#') {
              cnt++;
            }
            if (S[i - 1][j + 1] == '#') {
              cnt++;
            }
          } else if (j == 0) {
            if (S[i][j + 1] == '#') {
              cnt++;
            }
            if (S[i - 1][j] == '#') {
              cnt++;
            }
            if (S[i - 1][j + 1] == '#') {
              cnt++;
            }
            if (S[i + 1][j] == '#') {
              cnt++;
            }
            if (S[i + 1][j + 1] == '#') {
              cnt++;
            }
          } else if (j == W - 1) {
            if (S[i][j - 1] == '#') {
              cnt++;
            }
            if (S[i - 1][j - 1] == '#') {
              cnt++;
            }
            if (S[i - 1][j] == '#') {
              cnt++;
            }
            if (S[i + 1][j - 1] == '#') {
              cnt++;
            }
            if (S[i + 1][j] == '#') {
              cnt++;
            }
          }
          data[i][j] = to_string(cnt);
        } else {
          int cnt = 0;
          if (S[i][j - 1] == '#') {
            cnt++;
          }
          if (S[i][j + 1] == '#') {
            cnt++;
          }
          if (S[i - 1][j - 1] == '#') {
            cnt++;
          }
          if (S[i - 1][j] == '#') {
            cnt++;
          }
          if (S[i - 1][j + 1] == '#') {
            cnt++;
          }
          if (S[i + 1][j - 1] == '#') {
            cnt++;
          }
          if (S[i + 1][j] == '#') {
            cnt++;
          }
          if (S[i + 1][j + 1] == '#') {
            cnt++;
          }
          data[i][j] = to_string(cnt);
        }
      }
    }
  }
  for (int i = 0; i < H; i++) {
    for (int j = 0; j < W; j++) {
      if (j == W - 1) {
        cout << data[i][j] << endl;
      } else {
        cout << data[i][j];
      }
    }
  }
}
