#include<stdio.h>
#include<stdlib.h>
#include <string.h>
int main()
{
int m, n;
scanf("%d %d", &m, &n);//세로 가로 입력.
char **matrix = malloc(sizeof(char*)*m);
for (int i = 0; i < m; i++)
{
matrix[i] = malloc(sizeof(char) * (n + 1)); // 행렬의 가로값 포인터 할당 문자열 null문자때문.
memset(matrix[i], 0, sizeof(char) * (n + 1)); // 행렬값 초기화
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < m; j++)
{
scanf("%s", matrix[i], sizeof(char)); // '@'지뢰, '0'지뢰없음 입력
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == '0')//지뢰아니면 넘어가자.
{
continue;
}
else if (matrix[i][j] == '@')//지뢰면 탐색.
{
for (int r = j - 1; r <= j + 1; r++)
{
for (int k = i - 1; k <= i + 1; k++)
{
if((k<0||k>=i)||(r<0||r>=i))
continue;
else
matrix[i][j] += 1;
}
}
}
}
}
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
{
if (matrix[i][j] == '@')//지뢰라면
{
printf("%s ",'@');//지뢰를 출력해준다.
}
else //아니라면
{
printf("%d ",matrix[i][j]);//+1된 값을 출력해준다.
}
}
printf("\n");
}
return 0;
}