#include <bits/stdc++.h>
using namespace std;

int main(){
  int H, W;
  cin >> H >> W;
  
  vector<vector<char>> mine(H, vector<char>(W));
  for(int i = 0; i < H; i++){
    for(int j = 0; j < W; j++){
      cin >> mine.at(i).at(j);
    }
  }
  
  vector<vector<int>> ans(H, vector<int>(W));
  for(int i = 0; i < H; i++){
    for(int j = 0; j < W; j++){
      ans.at(i).at(j) = 0;
    }
  }
  
  for(int i = 0; i < H; i++){
    for(int j = 0; j < W; j++){
      if(mine.at(i).at(j) == '#'){
        continue;
      }
      else{
        if(i != 0){
          if(mine.at(i-1)at(j) == '#'){
            ans.at(i).at(j) ++;
          }
        }
        if(i != H - 1){
          if(mine.at(i+1).at(j) == '#'){
            ans.at(i).at(j) ++;
          }
        }
        
        if(j != 0){
          if(mine.at(i).at(j-1) == '#'){
            ans.at(i).at(j) ++;
          }
          if(i != 0){
            if(mine.at(i-1).at(j-1) == '#'){
              ans.at(i).at(j) ++;
            }
          }
          if(i != H - 1){
            if(mine.at(i+1).at(j-1) == '#'){
              ans.at(i).at(j) ++;
            }
          }
        }
        if(j != W - 1){
          if(mine.at(i).at(j+1) == '#'){
            ans.at(i).at(j) ++;
          }
          if(i != 0){
            if(mine.at(i-1).at(j+1) == '#'){
              ans.at(i).at(j) ++;
            }
          }
          if(i != H - 1){
            if(mine.at(i+1).at(j+1) == '#'){
              ans.at(i).at(j) ++;
            }
          }
        }
      }
    }
  }
  
  char output;
  for(int i = 0; i < H; i++){
    for(int j = 0; j < W; j++){
      if(mine.at(i).at(j) == '#'){
        cout << '#';
      }
      else{
        output = ans.at(i).at(j);
        cout << output;
      }
    }
    cout << endl;
  }
  
}