#include <iostream>
#include <cstring>
int s[105][105];
int main() {
char temp;
int n,m; //两个整数n和m,分别表示雷区的行数和列数
scanf("%d%d",&n,&m);
/*多围一圈,防止边界误差
*/
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
scanf("%c",&temp);//读入每一个点
if(temp=='*') s[i][j]=1;//*为有雷,标记为1
}
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=m; j++) {
if(s[i][j]==1) printf("*");
else printf("%d",s[i+1][j+1]+s[i+1][j-1]+s[i+1][j]+s[i][j+1]+s[i][j-1]+s[i-1][j+1]+s[i-1][j]+s[i-1][j-1]);
}
printf("\n");
}
return 0;
}