n, m = map(int, input().split())
matrix = [list(input().strip()) for _ in range(n)]
# 定义周围8格的偏移量
directions = [(-1, -1), (-1, 0), (-1, 1), (0, -1), (0, 1), (1, -1), (1, 0), (1, 1)]
# 生成扫雷结果矩阵
result = []
for i in range(n):
current_row = []
for j in range(m):
if matrix[i][j] == "*":
current_row.append("*")
else:
# 统计周围地雷数量
count = 0
for dx, dy in directions:
# 计算周围格子的坐标
x = i + dx
y = j + dy
# 检查坐标是否在矩阵范围内
if 0 <= x < n and 0 <= y < m:
# 如果是地雷,计数加1
if matrix[x][y] == "*":
count += 1
# 将计数添加到当前行
current_row.append(str(count))
# 将当前行添加到结果矩阵
result.append("".join(current_row))
# 输出结果
for row in result:
print(row)