#include <stdio.h>

int main() {
    int n = 0, m = 0, i = 0, j = 0, count[1001][1001], p = 0, q = 0;
    char ch[1001][1001];
    while (scanf("%d %d", &n, &m) != EOF) {//可以多组输入
        for (i = 0; i < n + 2; i++) {//将棋盘定为(n+2)*(m+2)
            for (j = 0; j < m + 2; j++) {
                if (i == 0 || j == 0 || i == n + 1 || j == m + 1)//外围为空
                    ch[i][j] = ' ';
                else
                    scanf(" %c", &ch[i][j]);//赋值
            }
        }
        for (i = 1; i < n + 1; i++)//判断*数量
            for (j = 1; j < m + 1; j++) {
                count[i][j] = 0;
                for (p = 0; p < 3; p++)
                    for (q = 0; q < 3; q++)
                        if (ch[i - 1 + p][j - 1 + q] == '*')
                            count[i][j]++;
            }
        for (i = 1; i < n + 1; i++) {//打印
            for (j = 1; j < m + 1; j++) {
                if (ch[i][j] == '*')
                    printf("*");
                else
                    printf("%d", count[i][j]);
            }
            printf("\n");
        }
    }
    return 0;
}