#include<bits/stdc++.h>
using namespace std;
int main(){ 
    int x,y;
    cin>>x>>y;
    int i,j;
    int count;
    char mine[x][y];
    int pay[x][y];
    for(i=0;i<x;i++)
        for(j=0;j<y;j++)
            cin>>mine[i][j];
    for(i=0;i<x;i++){
        for(j=0;j<y;j++){
            if(mine[i][j]=='?'){
                if(mine[i-1][j-1]=='*')if(j-1<y&&j-1>=0)if(i-1<x&&i-1>=0)count++;
                if(mine[i-1][j]=='*')if(j<y&&j>=0)if(i-1<x&&i-1>=0)count++;
                if(mine[i-1][j+1]=='*')if(j+1<y&&j+1>=0)if(i-1<x&&i-1>=0)count++;
                if(mine[i][j-1]=='*')if(j-1<y&&j-1>=0)if(i<x&&i>=0)count++;
                if(mine[i][j]=='*')if(j<y&&j>=0)if(i-1<x&&i>=0)count++;
                if(mine[i][j+1]=='*')if(j+1<y&&j+1>=0)if(i<x&&i>=0)count++;
                if(mine[i+1][j-1]=='*')if(j-1<y&&j-1>=0)if(i+1<x&&i+1>=0)count++;
                if(mine[i+1][j]=='*')if(j<y&&j>=0)if(i+1<x&&i+1>=0)count++;
                if(mine[i+1][j+1]=='*')if(j+1<y&&j+1>=0)if(i+1<x&&i+1>=0)count++;
                pay[i][j]=count;
                count=0;
            }
            else mine[i][j]='*';
        }
    }
    for(i=0;i<x;i++){
        for(j=0;j<y;j++){    
            if(mine[i][j]=='?') cout<<pay[i][j];
            else cout<<mine[i][j];
        }
        cout<<"\n";
    }
    return 0;
}

/**************************************************************
	Problem: 2341
	User: wangyichen2
	Language: C++
	Result: Accepted
	Time:51 ms
	Memory:2072 kb
****************************************************************/