#include <stdio.h>
#include <stdlib.h>
struct stank{
    char bomb;
    int num;
};

int main() {
    int n,m;
    scanf("%d %d\n",&n,&m);
    struct stank **a = (struct stank **)malloc(n * sizeof(struct stank *));
    if(a == NULL){
        printf("error");
        return -1;
    }
    for(int i = 0; i < n; i ++){
        a[i] = (struct stank *)malloc(m * sizeof(struct stank));
        if(a[i] == NULL){
            printf("error");
            return -1;
        }
        for(int j = 0; j < m; j ++){
            scanf(" %c",&(a[i][j].bomb));
            a[i][j].num = 0;
        }
    }
    for(int i = 0; i < n; i ++){
        for(int j = 0; j < m; j ++){
            if(a[i][j].bomb == '*'){
                a[i][j].num = -10;
                if(i >= 1 && j >= 1){
                    a[i - 1][j - 1].num ++;
                }
                if(i >= 1){
                    a[i - 1][j].num ++;
                }
                if(i >= 1 && j < m - 1){
                    a[i -1][j + 1].num ++;
                }
                if(j >= 1){
                    a[i][j - 1].num ++;
                }
                if(j < m - 1){
                    a[i][j + 1].num ++;
                }
                if(i < n - 1 && j >= 1){
                    a[i + 1][j - 1].num ++;
                }
                if(i < n -1){
                    a[i + 1][j].num ++;
                }
                if(i < n - 1 && j < m - 1){
                    a[i + 1][j + 1].num ++;
                }

            }
        }
    }

    for(int i = 0; i < n; i ++){
        for(int j = 0; j < m; j ++){
           if(a[i][j].num < 0){
            printf("*");
           }
           else{
            printf("%d",a[i][j].num);
           }
        }
        printf("\n");
    }
    free(a);
    return 0;
}