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();
        }
    }
}