n, m = map(int, input().split())
# 读取扫雷矩阵
matrix = []
for _ in range(n):
line = input().strip()
matrix.append(list(line))
# 定义8个方向的偏移量(行偏移,列偏移)
directions = [(-1, -1), (-1, 0), (-1, 1),
(0, -1), (0, 1),
(1, -1), (1, 0), (1, 1)]
# 处理每个单元格
for i in range(n):
for j in range(m):
# 如果是地雷,保持不变
if matrix[i][j] == '*':
continue
# 计算周围地雷数量
count = 0
for dx, dy in directions:
# 计算相邻单元格的坐标
x = i + dx
y = j + dy
# 检查坐标是否在矩阵范围内
if 0 <= x < n and 0 <= y < m:
if matrix[x][y] == '*':
count += 1
# 将计数结果转换为字符存入矩阵
matrix[i][j] = str(count)
# 输出结果
for row in matrix:
print(''.join(row))