#include<bits/stdc++.h> using namespace std; int main(){ int x,y; cin>>x>>y; int i,j; int count; char mine[x][y]; int pay[x][y]; for(i=0;i<x;i++) for(j=0;j<y;j++) cin>>mine[i][j]; for(i=0;i<x;i++){ for(j=0;j<y;j++){ if(mine[i][j]=='?'){ if(mine[i-1][j-1]=='*')if(j-1<y&&j-1>=0)if(i-1<x&&i-1>=0)count++; if(mine[i-1][j]=='*')if(j<y&&j>=0)if(i-1<x&&i-1>=0)count++; if(mine[i-1][j+1]=='*')if(j+1<y&&j+1>=0)if(i-1<x&&i-1>=0)count++; if(mine[i][j-1]=='*')if(j-1<y&&j-1>=0)if(i<x&&i>=0)count++; if(mine[i][j]=='*')if(j<y&&j>=0)if(i-1<x&&i>=0)count++; if(mine[i][j+1]=='*')if(j+1<y&&j+1>=0)if(i<x&&i>=0)count++; if(mine[i+1][j-1]=='*')if(j-1<y&&j-1>=0)if(i+1<x&&i+1>=0)count++; if(mine[i+1][j]=='*')if(j<y&&j>=0)if(i+1<x&&i+1>=0)count++; if(mine[i+1][j+1]=='*')if(j+1<y&&j+1>=0)if(i+1<x&&i+1>=0)count++; pay[i][j]=count; count=0; } else mine[i][j]='*'; } } for(i=0;i<x;i++){ for(j=0;j<y;j++){ if(mine[i][j]=='?') cout<<pay[i][j]; else cout<<mine[i][j]; } cout<<"\n"; } return 0; } /************************************************************** Problem: 2341 User: wangyichen2 Language: C++ Result: Accepted Time:51 ms Memory:2072 kb ****************************************************************/