#include<iostream>
using namespace std;
int main(){
char a[101][101];
int b[101][101],n,m,i,j;
cin>>n>>m;//读入行、列
for(i=0;i<101;i++)
for(j=0;j<101;j++)
b[i][j]=0;
for(i=0;i<n;i++)
for(j=0;j<m;j++)
{
cin>>a[i][j];
if(a[i][j]=='*')//判断:如果是地雷
{
b[i+1][j+1]++;
if(j-1>=0){
b[i+1][j-1]++;
}
b[i+1][j]++;
b[i][j+1]++;
if(j-1>=0){
b[i][j-1]++;
}
if(i-1>=0){
b[i-1][j]++;
}
if(i-1>=0){
b[i-1][j+1]++;
}
if(i-1>=0&&j-1>=0){
b[i-1][j-1]++;//先判断再+1
}
}
}
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(a[i][j]=='*')
cout<<"*";//如果是地雷(*) 原样输出
else
cout<<b[i][j];//否则输出数字
}
cout<<endl;
}
}