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