#include <bits/stdc++.h>
using namespace std;
bool canmoveright(char in[5][4],int cr,int cc,int m,int n)
{
if(in[cr][cc+1]==β0β && cr<m && cc+1< n)
{
return true;
}
return false;
}
bool canmovedown(char in[5][4],int cr,int cc,int m,int n)
{
if(in[cr+1][cc]==β0β && cr+1<m && cc<n)
{
return true;
}
return false;
}
bool rmaze(char in[5][4],char out[5][4],int cr,int cc,int m,int n)
{
//base case
if(cr==m-1 && cc==n-1)
{
return true;
}
//recursive case
if(canmoveright(in,cr,cc,m,n))
{ out[cr][cc]='1';
return rmaze(in,out,cr,cc+1,m,n);
}
if(canmovedown(in,cr,cc,m,n))
{
out[cr][cc]='1';
return rmaze(in,out,cr+1,cc,m,n);
}
if(!canmoveright && !canmovedown )
{
return false;
}
out[cr][cc]='0';
}
int main()
{
int m,n;
char arr[5][4];
char out[5][4]={β0β};
for(int i=0;i<5;i++)
{
for(int j=0;j<4;j++)
{
cin>>arr[i][j];
}
}
if(rmaze(arr,out,0,0,5,4))
{
for(int k=0;k<5;k++)
{
for( int l =0;l<4;l++)
{
cout<<out[k][l];
}cout<<endl;
}}
return 0;}