import java.util.Scanner;
//封装了判断核心代码
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        in.nextLine();
        char[][] arr = new char[n][m];
        for (int i = 0; i < n; i++) {
            String temp = in.nextLine();
            for (int j = 0; j < m; j++) {
                arr[i][j] = temp.charAt(j);
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < m; j++) {
                if (arr[i][j] == '.') {
                    int tempSum = 0;
                    //左上
                    if (Tools.A(arr, n, m, i - 1, j - 1)) {tempSum += 1;}
                    //上
                    if (Tools.A(arr, n, m, i - 1, j)) {tempSum += 1;}
                    //右上
                    if (Tools.A(arr, n, m, i - 1, j+1)) {tempSum += 1;}
                    //右
                    if (Tools.A(arr, n, m, i, j+1)) {tempSum += 1;}
                    //右下
                    if (Tools.A(arr, n, m, i+1, j+1)) {tempSum += 1;}
                    //下
                    if (Tools.A(arr, n, m, i+1, j)) {tempSum += 1;}
                     //左下
                    if (Tools.A(arr, n, m, i+1, j-1)) {tempSum += 1;}
                     //左
                    if (Tools.A(arr, n, m, i, j-1)) {tempSum += 1;}

                    arr[i][j]=(char)('0'+tempSum);

                }
            }
        }
        for(int i=0;i<n;i++){
            for(int j=0;j<m;j++){
                System.out.print(arr[i][j]); 
            }
            System.out.print('\n');
        }
    }
}
//封装一个判断周围有没有‘*’的类
    class Tools {
        public static boolean A(char[][] arr, int n, int m, int i, int j) {
            if (i < n && j < m && i >= 0 && j >= 0) {
                if (arr[i][j] == '*') {
                    return true;
                }
            }
            return false;
        }
    }