#include<bits/stdc++.h>
using namespace std;
int c=0;
void print (int s[][1000],int n,int m)
{
if(c==0)
{ c++;
for(int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cout<<s[i][j]<<" ";
}
cout<<endl;
}
}
}
bool maze(char a[1000][1000],int s[][1000],int i,int j,int n,int m)
{
if(i==n-1 && j==m-1)
{
s[n-1][m-1]=1;
print(s,n,m);
return true;
}
if(i>n || j>m)
{
return false;
}
if(a[i][j]=='X')
{
return false;
}
s[i][j]=1;
bool right=maze(a,s,i,j+1,n,m);
bool down=maze(a,s,i+1,j,n,m);
s[i][j]=0;
if(right||down)
{
return true;
}
return false;
}
int main()
{
int n,m;
cin>>n>>m;
char a[1000][1000];
for (int i=0;i<n;i++)
{
for (int j=0;j<m;j++)
{
cin>>a[i][j];
}
}
int s[1000][1000]={0};
bool ans=maze(a,s,0,0,n,m);
if(ans==false)
{
cout<<"-1";
}
return 0;
}