package DPProblems;
import java.util.Scanner;
public class RatInMaze {
public static void main(String[]args)
{
Scanner sc=new Scanner(System.in);
int N=sc.nextInt();
int M=sc.nextInt();
char arr[][]=new char[N][M];
for(int i=0;i<N;i++)
{
for(int j=0;j<M;j++)
{
arr[i][j]=sc.next().charAt(0);
}
}
boolean flag[]= {false};
int ans[][]=new int[N][M];
funCall(arr,ans,N-1,M-1,0,0,flag);
if(flag[0]==false)
{
System.out.println("-1");
}
sc.close();
}
public static void funCall(char arr[][],int ans[][],int N,int M,int i,int j,boolean flag[])
{
if(arr[i][j]=='X')
{
return;
}
ans[i][j]=1;
if(i==N && j==M)
{
for(int k=0;k<=N;k++)
{
for(int l=0;l<=M;l++)
{
System.out.print(ans[k][l]+" ");
}
System.out.println();
}
flag[0]=true;
return;
}
if(i<=N && j+1<=M && flag[0]==false)
{
funCall(arr,ans,N,M,i,j+1,flag);
}
if(i+1<=N && j<=M && flag[0]==false)
{
funCall(arr,ans,N,M,i+1,j,flag);
}
ans[i][j]=0;
return;
}
}