#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll a[505][505],b[505][505];
ll c[505][505];
int main()
{
ll n,m;
cin>>n>>m;
ll i,j;
for(i=1;i<=n;i++)
{
string s;//按行输入
cin>>s;
for(j=1;j<=m;j++)
c[i][j]=s[j-1]-'0';
}
//令矩阵a的奇数行全为1,偶数行全为0;
//令矩阵b的奇数行全为0,偶数行全为1
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(i%2==1)
{
a[i][j]=1;
b[i][j]=0;
}
else
{
a[i][j]=0;
b[i][j]=1;
}
}
}
//令矩阵a的第一列全为1,最后一列全为0
//矩阵b的第一列全为0,最后一列全为1
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(j==1)
{
a[i][j]=1;
b[i][j]=0;
}
if(j==m)
{
a[i][j]=0;
b[i][j]=1;
}
}
}
//矩阵c中1->矩阵a和b对应位置
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
{
if(c[i][j]==1)a[i][j]=b[i][j]=c[i][j];
}
}
//printf a,b
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<a[i][j];
cout<<endl;
}
for(i=1;i<=n;i++)
{
for(j=1;j<=m;j++)
cout<<b[i][j];
cout<<endl;
}
return 0;
}