#include <stdio.h> #include <stdlib.h> int count(char** ans, int i, int j, int m, int n){ if(i< 0 || i >= m || j < 0 || j >= n || ans[i][j] != '*') return 0; return 1; } void change(char** ans, int m, int n){ for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ if(ans[i][j] == '0') { ans[i][j] = '0' + count(ans,i-1,j-1,m,n) + count(ans,i-1,j,m,n) + count(ans,i-1,j+1,m,n) + count(ans,i,j-1,m,n) + count(ans,i,j+1,m,n) + count(ans,i+1,j-1,m,n) + count(ans,i+1,j,m,n) + count(ans,i+1,j+1,m,n); } } } } int main() { int m, n; scanf("%d %d",&m, &n); char** ans = malloc(sizeof(char*) * m); for(int i = 0; i < m; i++){ ans[i] = malloc(sizeof(char) * n); } getchar(); for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ char c = getchar(); if(c == '.') c = '0'; ans[i][j] = c; } getchar(); } change(ans, m, n); for(int i = 0; i < m; i++){ for(int j = 0; j < n; j++){ printf("%c",ans[i][j]); } printf("\n"); } return 0; }