import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt(), m = in.nextInt();
in.nextLine();//吸收换行字符!!!检查了好久才发现逆天了
char[][] map = new char[1005][1005], map1 = new char[1005][1005];
for (int i = 1; i <= n; i++) {
String line = in.nextLine();
for (int j = 1; j <= m; j++) {
map[i][j] = line.charAt(j-1);
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
int cnt = 0;
if (map[i][j] == '*') {
map1[i][j] = '*';
} else {
if (map[i - 1][j] == '*')cnt++; //上
if (map[i + 1][j] == '*')cnt++; //下
if (map[i][j - 1] == '*')cnt++; //左
if (map[i][j + 1] == '*')cnt++; //右
if (map[i - 1][j - 1] == '*')cnt++; //上左
if (map[i - 1][j + 1] == '*')cnt++; //上右
if (map[i + 1][j + 1] == '*')cnt++; //下右
if (map[i + 1][j - 1] == '*')cnt++; //下左
map1[i][j] = (char)(cnt + '0'); //必为个位数
}
}
}
for (int i = 1; i <= n; i++) {
for (int j = 1; j <= m; j++) {
System.out.print(map1[i][j]);
}
System.out.println();
}
}
}