#include <bits/stdc++.h>
using namespace std;
int main() {
  //入力
  int h, w;
  cin >> h >> w;
  //一つの文字列に
  string s;
  for(int i = 0; i < h; i++) {
    string f;
    cin >> f;
    s += f;
  }
  //＃を数える s.at(i*w+j)が基本
  for(int i = 0; i < h; i++) {
    for(int j = 0; j < w; j++) {
      int count = 0;
      if(i!=0 && j!=0 && s.at((i-1)*w+j-1)=='#') count++;
      if(i!=0 && s.at((i-1)*w+j)=='#') count++;
      if(i!=0 && j!=w-1 && s.at((i-1)*w+j+1)=='#') count++;
      if(j!=0 && s.at(i*w+j-1)=='#') count++;
      if(j!=w-1 && s.at(i*w+j+1)=='#') count++;
      if(i!=h-1 && j!=0 && s.at((i+1)*w+j-1)=='#') count++;
      if(i!=h-1 && s.at((i+1)*w+j)=='#') count++;
      if(i!=h-1 && j!=w-1 && s.at((i+1)*w+j+1)=='#') count++;
      //入れ替え
      if(s.at(i*w+j) == '#') continue;
      else if(count == 1) s.at(i*w+j) = '1';
      else if(count == 2) s.at(i*w+j) = '2';
      else if(count == 3) s.at(i*w+j) = '3';
      else if(count == 4) s.at(i*w+j) = '4';
      else if(count == 5) s.at(i*w+j) = '5';
      else if(count == 6) s.at(i*w+j) = '6';
      else if(count == 7) s.at(i*w+j) = '7';
      else if(count == 8) s.at(i*w+j) = '8';
      else if(count == 0) s.at(i*w+j) = '0';
    }
  }
  //改行して出力
  for(int i = 0; i < h; i++) {
    for(int j = 0; j < w; j++) {
      cout << s.at(i*W+j);
      if(j == w - 1) cout << endl;
    }
  }
}