def get_mine(matrix, raw, col):
result = [['*'] * col for _ in range(raw)]
eight_direct = [(0, 1), (1, 0), (-1, 0), (0, -1), (1, 1), (1, -1), (-1, 1), (-1, -1)]
def cal_mine(i_n, j_n):
count = 0
for direct in eight_direct:
i_new = i_n + direct[0]
j_new = j_n + direct[1]
if 0 <= i_new <= raw - 1 and 0 <= j_new <= col - 1 and matrix[i_new][j_new] == '*':
count += 1
return count
for i in range(raw):
for j in range(col):
if matrix[i][j] != '*':
result[i][j] = str(cal_mine(i, j))
return result
def print_result(matrix):
for raw in matrix:
print(''.join(raw))
raw, col = map(int, input().split())
mine_matrix = []
for i in range(raw):
line = input().strip()
mine_matrix.append(line)
# print(mine_matrix)
result_matrix = get_mine(mine_matrix, raw, col)
print_result(result_matrix)