n, m = map(int, input().split()) # 将输入内容转换为0或者1表示的点阵,以方便计数 # 并在点阵周围增加一圈以0为元素的点阵,以减少原点阵四周计算的逻辑判断 add_list = [[0] * (m + 2)] # 将输入转为列表 for i in range(n): num_list = [0] for j in input(): if j == ".": num_list.append(0) elif j == "*": num_list.append(1) num_list.append(0) add_list.append(num_list) add_list.append([0] * (m + 2)) # 将点阵除四周的内容转换后输出 for row in range(1, n + 2 - 1): # 点阵在在原有基础上增加了两行和两列,计算内容从1到N-1 for column in range(1, m + 2 - 1): if add_list[row][column] == 1: print("*", end="") else: count = ( add_list[row - 1][column - 1] + add_list[row - 1][column] + add_list[row - 1][column + 1] + add_list[row][column - 1] + add_list[row][column + 1] + add_list[row + 1][column - 1] + add_list[row + 1][column] + add_list[row + 1][column + 1] ) print(count, end="") print()