n, m = map(int,input().split())
metrix = [list(input()) for _ in range(n)]
#数据输入及初始化
for i in range(n):
for j in range(m):
if metrix[i][j] != '*':
cot = 0
if i-1>=0 and j-1>=0 and metrix[i-1][j-1]=='*':
cot += 1#左上
if i-1>=0 and metrix[i-1][j]=='*':
cot += 1#上
if i-1>=0 and j+1<m and metrix[i-1][j+1]=='*':
cot += 1#右上
if j-1>=0 and metrix[i][j-1]=='*':
cot += 1#左
if j+1<m and metrix[i][j+1]=='*':
cot += 1#右
if i+1<n and j-1>=0 and metrix[i+1][j-1]=='*':
cot += 1#左下
if i+1<n and metrix[i+1][j]=='*':
cot += 1#下
if i+1<n and j+1<m and metrix[i+1][j+1]=='*':
cot += 1#右下
metrix[i][j] = str(cot)
#遍历二维矩阵,判断每一个非地雷区域周边的地雷数量
print('\n'.join(map(''.join,metrix)))
#数据格式化输出