#include <bits/stdc++.h>
using namespace std;
 
int main() {
  int N, M;
  cin >> N >> M;
  vector<string> vec(N);
  for(int i = 0; i<N;i++){
    cin >> vec.at(i); 
  }
  for(int i=0;i<N;i++){
    for(int j=0;j<M;j++){
      if(vec.at(i).at(j)=='.'){
        int count;
        if(i>0&&vec.at(i-1).at(j)=='#'){
          count+=1;
        }
        if(i<(N-1)&&vec.at(i+1).at(j)=='#'){
          count+=1;
        }
        if(j>0&&vec.at(i).at(j-1)=='#'){
          count+=1;
        }
        if(j<M-1&&vec.at(i).at(j+1)=='#'){
          count+=1;
        }
        if(i>0&&j>0&&vec.at(i-1).at(j-1)=='#'){
          count+=1;
        }
        if(i>0&&j<M-1 &&vec.at(i-1).at(j+1)=='#'){
          count+=1;
        }
        if(i<N-1&&j>0&&vec.at(i+1).at(j-1)=='#'){
          count+=1;
        }
        if(i<N-1&&j<M-1 &&vec.at(i+1).at(j+1)=='#'){
          count+=1;
        }
        string s;
        s = to_string(s)
        vec.at(i).at(j) = s;
      }
    }
  }
  for(int i = 0;i<N;i++){
  cout << vec.at(i) << endl;
  }
  return 0;
}