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)