#include<cstdlib>
#include<cstdio>
#include<algorithm>
#include<cstring>
#include<iostream>
using namespace std;
char grid[105][105];
int res[105][105];
void solve(int n, int m)
{
int i,j;
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
{
int count=0;
if(grid[i][j]=='*')
{
res[i][j]=-1;
continue;
}
if(grid[i-1][j]=='*')count++;
if(grid[i-1][j-1]=='*')count++;
if(grid[i-1][j+1]=='*')count++;
if(grid[i+1][j]=='*')count++;
if(grid[i+1][j+1]=='*')count++;
if(grid[i+1][j-1]=='*')count++;
if(grid[i][j+1]=='*')count++;
if(grid[i][j-1]=='*')count++;
res[i][j]=count;
}
}
}
int main()
{
freopen("in.txt","r",stdin);
freopen("out.txt","w",stdout);
int n,m,i,j,t=1;
memset(grid,'0',sizeof(grid));
memset(res,-1,sizeof(res));
while(1)
{
memset(res,-1,sizeof(res));
scanf("%d %d",&n,&m);
getchar();
if(n==0&&m==0) break;
for( i=1; i<=n; i++)
scanf("%s",&grid[i][1]);
if(t!=1)
printf("\n");
printf("Field #%d:\n",t++);
solve(n,m);
for(i=1; i<=n; i++)
{
for(j=1; j<=m; j++)
printf("%c",res[i][j]>=0?'0'+res[i][j]:'*');
printf("\n");
}
}
return 0;
}