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