#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
char s[1005][1005]; // 比赛中提交六次都没通过,结束后发现只是错了一个字母,思路是对的,但写了九个 if 难免会出错,有更简单的方法,好像是深度搜索什么的。。但我不会。。哭哭!
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
char s[1005][1005]; // 比赛中提交六次都没通过,结束后发现只是错了一个字母,思路是对的,但写了九个 if 难免会出错,有更简单的方法,好像是深度搜索什么的。。但我不会。。哭哭!
int main()
{
int a,b,c,t,m,n;
while(cin>>m>>n)
{
if(m==0 && n==0)
break;
memset(s,0,sizeof(s));
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
cin>>s[i][j];
}
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
if(s[i][j]=='*')
continue;
if(i>1 && i<m && j>1 && j<n)
{
int t=0;
if(s[i-1][j-1]=='*')
t++;
if(s[i-1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
s[i][j]=t+48;
}
if(i==1 && j==1)
{
int t=0;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
s[i][j]=t+48;
}
if(i==1 && j==n)
{
int t=0;
if(s[i][j-1]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
s[i][j]=t+48;
}
//if(i==n && j==1)
if(i==m && j==1)
{
int t=0;
if(s[i-1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
s[i][j]=t+48;
}
//if(i==n && j==m)
if(i==m && j==n)
{
int t=0;
if(s[i-1][j-1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i-1][j]=='*')
t++;
s[i][j]=t+48;
}
//if(i==1 && j!=m && j!=1)
if(i==1 && j!=n && j!=1)
{
int t=0;
if(s[i][j-1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
s[i][j]=t+48;
}
//if(i==n && j!=1 && j!=m)
if(i==m && j!=1 && j!=n)
{
int t=0;
if(s[i][j+1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i-1][j-1]=='*')
t++;
if(s[i-1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
s[i][j]=t+48;
}
if(i!=1 && i!=m && j==1)
{
int t=0;
if(s[i-1][j]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
s[i][j]=t+48;
}
if(i!=1 && i!=m && j==n)
{
int t=0;
if(s[i-1][j]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i-1][j-1]=='*')
t++;
s[i][j]=t+48;
}
}
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
cout<<s[i][j];
if(j==n)
cout<<endl;
}
cout<<endl;
}
return 0;
}
{
int a,b,c,t,m,n;
while(cin>>m>>n)
{
if(m==0 && n==0)
break;
memset(s,0,sizeof(s));
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
cin>>s[i][j];
}
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
if(s[i][j]=='*')
continue;
if(i>1 && i<m && j>1 && j<n)
{
int t=0;
if(s[i-1][j-1]=='*')
t++;
if(s[i-1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
s[i][j]=t+48;
}
if(i==1 && j==1)
{
int t=0;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
s[i][j]=t+48;
}
if(i==1 && j==n)
{
int t=0;
if(s[i][j-1]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
s[i][j]=t+48;
}
//if(i==n && j==1)
if(i==m && j==1)
{
int t=0;
if(s[i-1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
s[i][j]=t+48;
}
//if(i==n && j==m)
if(i==m && j==n)
{
int t=0;
if(s[i-1][j-1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i-1][j]=='*')
t++;
s[i][j]=t+48;
}
//if(i==1 && j!=m && j!=1)
if(i==1 && j!=n && j!=1)
{
int t=0;
if(s[i][j-1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
s[i][j]=t+48;
}
//if(i==n && j!=1 && j!=m)
if(i==m && j!=1 && j!=n)
{
int t=0;
if(s[i][j+1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i-1][j-1]=='*')
t++;
if(s[i-1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
s[i][j]=t+48;
}
if(i!=1 && i!=m && j==1)
{
int t=0;
if(s[i-1][j]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i-1][j+1]=='*')
t++;
if(s[i][j+1]=='*')
t++;
if(s[i+1][j+1]=='*')
t++;
s[i][j]=t+48;
}
if(i!=1 && i!=m && j==n)
{
int t=0;
if(s[i-1][j]=='*')
t++;
if(s[i+1][j]=='*')
t++;
if(s[i+1][j-1]=='*')
t++;
if(s[i][j-1]=='*')
t++;
if(s[i-1][j-1]=='*')
t++;
s[i][j]=t+48;
}
}
for(int i=1;i<=m;i++)
for(int j=1;j<=n;j++)
{
cout<<s[i][j];
if(j==n)
cout<<endl;
}
cout<<endl;
}
return 0;
}