#include<stdio.h>
# define MAXM 105
# define MAXN 105
# define NAXM 105
# define NAXN 105
int main()
{
char a[MAXM][MAXN];
char b[NAXM][NAXN];
int m,n,im,in,jm,jn,w;
scanf("%d%d",&m,&n);
for(in=0;in<100;in++)
{
for(im=0;im<100;im++)
{
a[im][in]=0;
b[im][in]=0;
}
}
for(im=0;im<m;im++)
{
for(in=0;in<n;in++)
{
scanf("%c",&a[im][in]);
if(('*' != a[im][in]) && ('?' != a[im][in]))
{
in--;
continue;
}
}
}
for(im=0;im<m;im++)
{
for(in=0;in<n;in++)
{
w=0;
if('*'!=a[im][in])
{
for(jm=im-1;jm<=im+1;jm++)
{
for(jn=in-1;jn<=in+1;jn++)
{
if((jm>=0) && (jn>=0) && (jm < m) && (jn < n))
{
if(a[jm][jn]=='*')
{
w=w+1;
}
}
}
}
b[im][in]=w;
}
}
}
for(im=0;im<m;im++)
{
for(in=0;in<n;in++)
{
if(a[im][in]=='*')
{
printf("%c",a[im][in]);
}
else
{
printf("%d",b[im][in]);
}
}
printf("\n");
}
}