#include
using namespace std;
bool ratinmaze(char maze[][100],int i,int j,int n, int m, int path[][100])
{
if(i==n-1&&j==m-1)
{
path[i][j]=1;
for(int x=0;x<n;x++)
{
for(int y=0;y<m;y++)
{
cout<<path[x][y]<<" ";
}
cout<<endl;
}
return true;
}
path[i][j]=1;
if(i<n && j+1<m && maze[i][j+1]!=‘X’)
{
path[i][j+1]=1;
bool kyarightseansaya=ratinmaze(maze,i,j+1,n,m,path);
if(kyarightseansaya==true)
{
return true;
}
}
if(j-1>=0 && i<n && maze[i][j-1]!='X' ){
path[i][j-1]=1;
bool kyaleftseansaya=ratinmaze(maze,i,j-1,n,m,path);
if(kyaleftseansaya){
return true;
}
}
if(i+1<n &&j<m&& maze[i+1][j]!='X')
{
path[i+1][j]=1;
bool kyadownseansaya=ratinmaze(maze,i+1,j,n,m,path);
if(kyadownseansaya)
{
return true;
}
}
path[i][j]=0;
return false;
}
int main()
{
int n,m;
cin>>n>>m;
char maze[100][100];
for(int i=0;i<n;i++){
for(int j=0;j<m;j++)
{
cin>>maze[i][j];
}
}
int path[100][100]={0};
bool is_path=ratinmaze(maze,0,0,n,m,path);
return 0;
}