#include<iostream>
#include<cctype>
#include<string>
using namespace std;

main(){
	int N,M,i,j,k,l,xTOP,yTOP;
	int temp;
	bool missionFailed=false;
	cin>>N>>M;
	char tabla[N][M],csiTabla[N][M];	
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			cin>>tabla[i][j];
		}
	}
	//PRVI UBACAJ TOPOVA - OKO BROJEVA
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			if(isdigit(tabla[i][j])){
				temp=tabla[i][j]-'0';
				char c=tabla[i-1][j];
				char d=tabla[i+1][j];
				char e=tabla[i][j-1];
				char f=tabla[i][j+1];
				if(temp>0&&j+1>=0&&f=='C'){
					temp--;
				}
				if(temp>0&&j-1>=0&&e=='C'){
					temp--;
				}
				if(temp>0&&i-1>=0&&c=='C'){
					temp--;
				}
				if(temp>0&&i+1>=0&&d=='C'){
					temp--;
				}
				if(temp>0&&j+1>=0&&f=='.'){
					tabla[i][j+1]='C';
					temp--;
				}
				if(temp>0&&j-1>=0&&e=='.'){
					tabla[i][j-1]='C';
					temp--;
				}
				if(temp>0&&i-1>=0&&c=='.'){
					tabla[i-1][j]='C';
					temp--;
				}
				if(temp>0&&i+1>=0&&d=='.'){
					tabla[i+1][j]='C';
					temp--;
				}
			}
		}
	}
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			csiTabla[i][j]=tabla[i][j];
		}
	}
	
	//OBELEZAVANJE MESTA KOJE TOPOVI BRANE KOJE SMO POSTAVILI
	
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			if(csiTabla[i][j]=='C'){
				for(k=0;i-k>=0;k++){
					if(csiTabla[i-k][j]=='.'){
						csiTabla[i-k][j]='X';
					}
				}
				for(k=0;j-k>=0;k++){
					if(csiTabla[i][j-k]=='.'){
						csiTabla[i][j-k]='X';
					}

				}
				for(k=0;i+k<=N-1;k++){
					if(csiTabla[i+k][j]=='.'){
						csiTabla[i+k][j]='X';
					}

				}
				for(k=0;j+k<=M-1;k++){
					if(csiTabla[i][j+k]=='.'){
						csiTabla[i][j+k]='X';
					}

				}
			}
		}
	}
	//FINALNI TOP
	/*bool top=false;
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			if(csiTabla[i][j]=='.'&&top==false){
				csiTabla[i][j]='C';
				tabla[i][j]='C';
				top=true;
			}
		}
	}
	old verzija losa
	*/
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			if(csiTabla[i][j]=='.'){
				if(csiTabla[i+1][j]=='.'||csiTabla[i-1][j]=='.'||csiTabla[i][j+1]=='.'||csiTabla[i][j-1]=='.'){
					csiTabla[i][j]='X';
				}
				else{
					csiTabla[i][j]='C';
					tabla[i][j]='C';
				}
			}
		}
	}
//FINISHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH

	//missionfailed-provera finalna
	for(i=0;i<N;i++){
		for(j=0;j<M;j++){
			if(csiTabla[i][j]=='C'){
				for(k=0;i-k>=0;k++){
					if(csiTabla[i-k][j]=='.'){
						csiTabla[i-k][j]='X';
					}
				}
				for(k=0;j-k>=0;k++){
					if(csiTabla[i][j-k]=='.'){
						csiTabla[i][j-k]='X';
					}

				}
				for(k=0;i+k<=N-1;k++){
					if(csiTabla[i+k][j]=='.'){
						csiTabla[i+k][j]='X';
					}

				}
				for(k=0;j+k<=M-1;k++){
					if(csiTabla[i][j+k]=='.'){
						csiTabla[i][j+k]='X';
					}

				}
			}
		}
	}
	for(i=0;i<N;i++){
			for(j=0;j<M;j++){
				if(csiTabla[i][j]=='.'){
					missionFailed=true;
				}
			}
		}
	for(i=0;i<N;i++){
			for(j=0;j<M;j++){
				if(csiTabla[i][j]=='0'){
					if(csiTabla[i+1][j]=='C'){
						missionFailed=true;
					}
					if(csiTabla[i-1][j]=='C'){
						missionFailed=true;
					}
					if(csiTabla[i][j+1]=='C'){
						missionFailed=true;
					}
					if(csiTabla[i][j-1]=='C'){
						missionFailed=true;
					}
				}
			}
		}
	///probaaa
	
	///
	if(missionFailed){
		cout<<"-1";
	}
	else{
		for(i=0;i<N;i++){
			for(j=0;j<M;j++){
				cout<<tabla[i][j];
			}
			cout<<endl;
		}
	}
	
}