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)