#include <iostream>
using namespace std;
int main() {
int n, m;
cin >> n >> m;
char lei[n][m];
// 读取输入矩阵
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
cin >> lei[i][j];
}
}
// 处理每个格子
for(int i = 0; i < n; i++) {
for(int j = 0; j < m; j++) {
if(lei[i][j] == '*') {
cout << '*';
} else {
int count = 0;
// 检查周围8个方向
for(int di = -1; di <= 1; di++) {
for(int dj = -1; dj <= 1; dj++) {
if(di == 0 && dj == 0) continue; // 跳过自己
int ni = i + di;
int nj = j + dj;
// 检查是否在边界内
if(ni >= 0 && ni < n && nj >= 0 && nj < m) {
if(lei[ni][nj] == '*') {
count++;
}
}
}
}
cout << count;
}
}
cout << endl; // 每行结束换行
}
return 0;
}
// 64 位输出请用 printf("%lld")