#include<cstring>
int n,k;
int a[110][110];
char s[110][110];
int fx[8]={1,1,0,-1,-1,-1,0,1};
int fy[8]={0,1,1,1,0,-1,-1,-1};
int main()
{
int t=0;
while(1)
{
t++;
scanf("%d %d",&n,&k);
if(n==0&&k==0)return 0;
for(int i=1;i<=n;i++)
scanf("%s",s[i]+1);
printf("Field #%d:\n",t);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=k;j++)
{
int ans=0;
if(s[i][j]=='*'){printf("*");continue;}
for(int l=0;l<8;l++)
{
int xx=i+fx[l],yy=j+fy[l];
// printf("%d %d\n",xx,yy);
if(xx<1||xx>n||yy<1||yy>k)continue;
if(s[xx][yy]=='*')
ans++;
}
printf("%d",ans);
}
printf("\n");
}
printf("\n");
}
}
#include<cstdio>
int dx[9]={0,-1,-1,-1,0,0,1,1,1},dy[9]={0,-1,0,1,-1,1,-1,0,1};
char st[110][110]; int a[110][110],n,m,x=0;
int main()
{
while(1)
{
scanf("%d %d",&n,&m);
if(n==0 && m==0) return 0;
memset(st,0,sizeof(st)); memset(a,0,sizeof(a));
for(int i=1;i<=n;i++) scanf("%s",st[i]+1);
for(int i=1;i<=n;i++)
for(int j=1;j<=m;j++)
{
if(st[i][j]=='*') { a[i][j]=-1; continue; }
for(int x=1;x<=8;x++)
{
int xx=i+dx[x],yy=j+dy[x];
if(xx>=1 && xx<=n && yy>=1 && yy<=m && st[xx][yy]=='*' ) a[i][j]++;
}
}
printf("Field #%d:\n",++x);
for(int i=1;i<=n;i++)
{
for(int j=1;j<=m;j++)
{
if(a[i][j]==-1) printf("*");
else printf("%d",a[i][j]);
}
printf("\n");
}
printf("\n");
}
return 0;
}