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))