#include <bits/stdc++.h>
using namespace std;

int main() {
        int H, W;
        cin >> H >> W;
        char s[H][W];
        int t[H][W] = {};

        for (int i = 0; i < H; i++) {
                for (int j = 0; j < W; j++) {
                        cin >> s[i][j];
                }
        }

        if (H == 1) { // 1×Xの時
                for (int j = 0; j < W; j++) {
                        if (j == 0) { // 左端
                                if (s[0][j + 1] == '#') {
                                        t[0][j]++;
                                }
                        }
                        if (0 < j && j < (W - 1)) { // 左右端以外
                                if (s[0][j - 1] == '#') { // 左
                                        t[0][j]++;
                                }
                                if (s[0][j + 1] == '#') { // 右
                                        t[0][j]++;
                                }
                        }
                        if (j == (W - 1)) {
                                if (s[0][j - 1] == '#') { // 右端
                                        t[0][j]++;
                                }
                        }
                }
        }
        else if (W == 1) { // X×1の時
                for (int i = 0; i < H; i++) {
                        if (i == 0) {
                                if (s[i + 1][0]) { // 下
                                        t[i][0]++;
                                }
                        }
                        if (0 < i && i < (H - 1)) { // 最上段と最下段以外
                                if (s[i - 1][0] == '#') { // 上
                                        t[i][0]++;
                                }
                                if (s[i + 1][0] == '#') { // 下
                                        t[i][0]++;
                                }
                        }
                        if (i == (H - 1)) { // 最下段
                                if (s[i - 1][0] == '#') { // 上
                                        t[i][0]++;
                                }
                        }
                }
        }
        else { // HもWも2以上の時
                for (int i = 0; i < H; i++) {
                        for (int j = 0; j < W; j++) {
                                if (i == 0) { // 最上段
                                        if (j == 0) { // 左端
                                                if (s[i][j + 1] == '#') { // 右
                                                        t[0][0]++;
                                                }
                                                if (s[i + 1][j] == '#') { // 下
                                                        t[0][0]++;
                                                }
                                                if (s[i + 1][j + 1] == '#') { // 右下
                                                        t[0][0]++;
                                                }
                                        }
                                        if (0 < j && j < (W - 1)) { // 端以外
                                                if (s[i][j - 1] == '#') { // 左
                                                        t[0][j]++;
                                                }
                                                if (s[i][j + 1] == '#') { // 右
                                                        t[0][j]++;
                                                }
                                                if (s[i + 1][j] == '#') { // 下
                                                        t[0][j]++;
                                                }
                                                if (s[i + 1][j - 1] == '#') { // 左下
                                                        t[0][j]++;
                                                }
                                                if (s[i + 1][j + 1] == '#') { // 右下
                                                        t[0][j]++;
                                                }
                                        }
                                        if (j == (W - 1)) { // 右端
                                                if (s[i][j - 1] == '#') { // 左
                                                        t[0][W - 1]++;
                                                }
                                                if (s[i + 1][j] == '#') { // 下
                                                        t[0][W - 1]++;
                                                }
                                                if (s[i + 1][j - 1] == '#') { // 左下
                                                        t[0][W - 1]++;
                                                }
                                        }
                                }
                                if (0 < i && i < (H - 1)) { // 最上段と最下段以外
                                        if (j == 0) { // 左端
                                                if (s[i - 1][j] == '#') { // 上
                                                        t[i][0]++;
                                                }
                                                if (s[i][j + 1] == '#') { // 右
                                                        t[i][0]++;
                                                }
                                                if (s[i + 1][j] == '#') { // 下
                                                        t[i][0]++;
                                                }
                                                if (s[i - 1][j + 1] == '#') { // 右上
                                                        t[i][0]++;
                                                }
                                                if (s[i + 1][j + 1] == '#') { // 右下
                                                        t[i][0]++;
                                                }
                                        }
                                        if (0 < j && j < (W - 1)) { // 端以外
                                                if (s[i - 1][j] == '#') { // 上
                                                        t[i][j]++;
                                                }
                                                if (s[i][j + 1] == '#') { // 右
                                                        t[i][j]++;
                                                }
                                                if (s[i + 1][j] == '#') { // 下
                                                        t[i][j]++;
                                                }
                                                if (s[i][j - 1] == '#') { // 左
                                                        t[i][j]++;
                                                }
                                                if (s[i - 1][j - 1] == '#') { // 左上
                                                        t[i][j]++;
                                                }
                                                if (s[i - 1][j + 1] == '#') { // 右上
                                                        t[i][j]++;
                                                }
                                                if (s[i + 1][j - 1] == '#') { // 左下
                                                        t[i][j]++;
                                                }
                                                if (s[i + 1][j + 1] == '#') { // 右下
                                                        t[i][j]++;
                                                }
                                        }
                                        if (j == (W - 1)) { // 右端
                                                if (s[i - 1][W - 1] == '#') { // 上
                                                        t[i][W - 1]++;
                                                }
                                                if (s[i][W - 2] == '#') { // 左
                                                        t[i][W - 1]++;
                                                }
                                                if (s[i + 1][W - 1] == '#') { // 下
                                                        t[i][W - 1]++;
                                                }
                                                if (s[i - 1][W - 2] == '#') { // 左上
                                                        t[i][W - 1]++;
                                                }
                                                if (s[i + 1][W - 2] == '#') { // 左下
                                                        t[i][W - 1]++;
                                                }
                                        }
                                }
                                if (i == (H - 1)) { // 最下段
                                        if (j == 0) { // 左端
                                                if (s[H - 2][j] == '#') { // 上
                                                        t[H - 1][j]++;
                                                }
                                                if (s[H - 1][j + 1] == '#') { // 右
                                                        t[H - 1][j]++;
                                                }
                                                if (s[H - 2][j + 1] == '#') { // 右上
                                                        t[H - 1][j]++;
                                                }
                                        }
                                        if (0 < j && j < (W - 1)) { // 端以外
                                                if (s[H - 1][j - 1] == '#') { // 左
                                                        t[H - 1][j]++;
                                                }
                                                if (s[H - 2][j] == '#') { // 上
                                                        t[H - 1][j]++;
                                                }
                                                if (s[H - 1][j + 1] == '#') { // 右
                                                        t[H - 1][j]++;
                                                }
                                                if (s[H - 2][j - 1] == '#') { // 左上
                                                        t[H - 1][j]++;
                                                }
                                                if (s[H - 2][j + 1] == '#') { // 右上
                                                        t[H - 1][j]++;
                                                }
                                        }
                                        if (j == (W - 1)) { // 右端
                                                if (s[H - 2][W - 1] == '#') { // 上
                                                        t[H - 1][W - 1]++;
                                                }
                                                if (s[H - 1][W - 2] == '#') { // 左
                                                        t[H - 1][W - 1]++;
                                                }
                                                if (s[H - 2][W - 2] == '#') { // 左上
                                                        t[H - 1][W - 1]++;
                                                }
                                        }
                                }
                        }
                }
        }

        for (int i = 0; i < H; i++) {
                for (int j = 0; j < W; j++) {
                        if (s[i][j] == '#') {
                                cout << s[i][j];
                        } else {
                                cout << t[i][j];
                        }
                }
                cout << endl;
        }
}


Measured memory_bytes: 256