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