#include <bits/stdc++.h>
using namespace std;
#define rep(i,n) for (int i=0;i<(int)(n);i++)

int main(){
  int H, W;
  char c;
  cin>> H >>W;
  string str;
  int n=0;
  vector<string> vec(H);
  vector<string> vecans(H);
   rep(i,W){
    str+="0";
  }
  rep(i,H){
    cin>>vec.at(i);
    vecans.at(i)=str;
  }
  if(H!=1 && W!=1){
    rep(i,H){
      rep(j,W){
        if(vec.at(i).at(j)=='#'){
          vecans.at(i).at(j)=vec.at(i).at(j);
        }
        else{
          if(i!=0 && i!=H-1 && j!=0 && j!= W-1){
            if(vec.at(i-1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j+1)=='#'){
            n++;
          }
          if(vec.at(i).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i).at(j+1)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j+1)=='#'){
            n++;
          }
        }
        if(i==0 && j!=0 && j!= W-1){
          if(vec.at(i).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i).at(j+1)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j+1)=='#'){
            n++;
          }
        }
        if(i==H-1 && j!=0 && j!=W-1){
          if(vec.at(i-1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j+1)=='#'){
            n++;
          }
          if(vec.at(i).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i).at(j+1)=='#'){
            n++;
          }
        }
        if(i!=0 && i!=H-1 && j==0){
          
          if(vec.at(i-1).at(j)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j+1)=='#'){
            n++;
          }
          
          if(vec.at(i).at(j+1)=='#'){
            n++;
          }
          
          if(vec.at(i+1).at(j)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j+1)=='#'){
            n++;
          }
        }
        if(i!=0 && i!=H-1  && j== W-1){
          if(vec.at(i-1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j)=='#'){
            n++;
          }
         
          if(vec.at(i).at(j-1)=='#'){
            n++;
          }
          
          if(vec.at(i+1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j)=='#'){
            n++;
          }
        }
        if(i==0 &&j==0){
         
          
          if(vec.at(i).at(j+1)=='#'){
            n++;
          }
          
          if(vec.at(i+1).at(j)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j+1)=='#'){
            n++;
          }
        }
        if(i==0 && j== W-1){
         
          if(vec.at(i).at(j-1)=='#'){
            n++;
          }
         
          if(vec.at(i+1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i+1).at(j)=='#'){
            n++;
          }
        }
        if(i==H-1 && j==0){
          
          if(vec.at(i-1).at(j)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j+1)=='#'){
            n++;
          }
          
          if(vec.at(i).at(j+1)=='#'){
            n++;
          } 
        }
        if(i==H-1&& j== W-1){
          if(vec.at(i-1).at(j-1)=='#'){
            n++;
          }
          if(vec.at(i-1).at(j)=='#'){
            n++;
          }
          
          if(vec.at(i).at(j-1)=='#'){
            n++;
          }
        }
        if(n==0){
          c='0';
        }
        if(n==1){
          c='1';
        }if(n==2){
          c='2';
        }if(n==3){
          c='3';
        }if(n==4){
          c='4';
        }if(n==5){
          c='5';
        }if(n==6){
          c='6';
        }if(n==7){
          c='7';
        }if(n==8){
          c='8';
        }
        if(n==9){
          c='9';
        }
        vecans.at(i).at(j)=c;
      }
      n=0;
    }
    cout << vecans.at(i) << endl;
    }
  }
  if(H==1 && W!=1){
    rep(j,W){
      if(vec.at(0).at(j)=='#'){
        vecans.at(0).at(j)=vec.at(0).at(j);
      }
      else{
        if(j!=0 && j!= W-1){
          if(vec.at(0).at(j-1)=='#'){
            n++;
          }
          if(vec.at(0).at(j+1)=='#'){
            n++;
          }
        }
        if(j==0){
          if(vec.at(0).at(1)=='#'){
            n++;
          }
        }
        if(j== W-1){
         
          if(vec.at(0).at(j-1)=='#'){
            n++;
          }
        }
        if(n==0){
          c='0';
        }
        if(n==1){
          c='1';
        }if(n==2){
          c='2';
        }if(n==3){
          c='3';
        }if(n==4){
          c='4';
        }if(n==5){
          c='5';
        }if(n==6){
          c='6';
        }if(n==7){
          c='7';
        }if(n==8){
          c='8';
        }
        if(n==9){
          c='9';
        }
        vecans.at(0).at(j)=c;
      }
      n=0;
    }
    cout<<vecans.at(0);
  }
  if(H!=1 && W==1){
    rep(i,H){
      if(vec.at(i).at(0)=='#'){
        vecans.at(i).at(0)=vec.at(i).at(0);
      }
      else{
        if(i!=0 && i!= H-1){
          if(vec.at(i-1).at(0)=='#'){
            n++;
          }
          if(vec.at(i+1).at(0)=='#'){
            n++;
          }
        }
        if(i==0){
          if(vec.at(i+1).at(0)=='#'){
            n++;
          }
        }
        if(i== H-1){
         
          if(vec.at(i-1).at(0)=='#'){
            n++;
          }
        }
        if(n==0){
          c='0';
        }
        if(n==1){
          c='1';
        }if(n==2){
          c='2';
        }if(n==3){
          c='3';
        }if(n==4){
          c='4';
        }if(n==5){
          c='5';
        }if(n==6){
          c='6';
        }if(n==7){
          c='7';
        }if(n==8){
          c='8';
        }
        if(n==9){
          c='9';
        }
        vecans.at(i).at(0)=c;
      }
      n=0;
      cout << vecans.at(i)<< endl;
    }
  }
   if(H==1 && W==1){
      if(vec.at(0).at(0)=='.'){
        vecans.at(0).at(0)='0';
      }
      else{
        vecans.at(0).at(0)='#';
      }
      cout<<vecans.at(0)<<endl;
   }
}

Measured memory_bytes: 256