import java.util.Scanner; public class Main { public static void main(String[] args) { int m, n; Scanner scanner = new Scanner(System.in); m = scanner.nextInt(); n = scanner.nextInt(); String s = scanner.nextLine(); String[] s1 =new String[m]; char[][] c = new char[m][n]; for(int i = 0 ; i < m ; i++) { s1[i] = scanner.nextLine(); for(int j = 0 ; j < n ; j++) { c[i][j] = s1[i].charAt(j); } } int[][] a = new int[m][n]; for(int i = 0 ; i < m ; i++) for(int j = 0 ; j < n ; j++) a[i][j] = 0; for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (c[i][j] == '*') { a[i][j] = -1; continue; } if (i - 1 >= 0 && c[i - 1][j] == '*') a[i][j] += 1; if (i - 1 >= 0 && j - 1 >= 0 && c[i - 1][j - 1] == '*') a[i][j] += 1; if (i - 1 >= 0 && j + 1 < n && c[i - 1][j + 1] == '*') a[i][j] += 1; if (j - 1 >= 0 && c[i][j - 1] == '*') a[i][j] += 1; if (j + 1 < n && c[i][j + 1] == '*') a[i][j] += 1; if (j - 1 >= 0 && i + 1 < m && c[i + 1][j - 1] == '*') a[i][j] += 1; if (i + 1 < m && c[i + 1][j] == '*') a[i][j] += 1; if (i + 1 < m && j + 1 < n && c[i + 1][j + 1] == '*') a[i][j] += 1; } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (a[i][j] != -1) System.out.print(a[i][j]); else { System.out.print("*"); } } System.out.println(); } } } /************************************************************** Problem: 1580 User: admin Language: Java Result: Accepted Time:5048 ms Memory:43024 kb ****************************************************************/