#include <stdio.h>
int main()
{
int n,m,cnt;
scanf("%d %d",&n,&m);
int a[n+2][m+2];//加层边框
int i,j,k;
for( i=0; i<=n+1; i++){
for( j=0; j<=m+1; j++){
a[i][j] = 0;
}
}
for( i=1; i<=n; i++){
for( j=1; j<=m; j++){
scanf("%c",&k);
if(k=='*'){
a[i][j] = 1;
} else {
a[i][j] = 0;
}//雷标记为1,空为0
}
scanf("\n");
}
for( i=1; i<=n; i++){
for( j=1; j<=m; j++){
if( a[i][j]==1 ){
printf("*");
} else {
int x,y;
cnt = 0;
for(x=i-1;x<=i+1;x++){
for(y=j-1;y<=j+1;y++){
cnt+=a[x][y];
}
}//周围雷的数量
printf("%d",cnt);
}
}
printf("\n");
}
return 0;
}