#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;
}