#include<bits/stdc++.h>
using namespace std;
int n,a[100][100],c[101],answer;
void ans(int an,int point)
{
int b[101][101];
c[point]=an;
if (an&&a[point/n+1][point%n]!=3)
{
int le=0,ri=n+1;
for (int k=1;k<=n;k++)
if (a[point/n+1][k]==3)
{
if (k<point%n) le=k;
if (ri==n+1&&k>point%n) ri=k;
}
for (int k=le+1;k<ri;k++) a[point/n+1][k]=(a[point/n+1][k]+1)%2;
le=0;ri=n+1;
for (int k=1;k<=n;k++)
if (a[k][point%n]==3)
{
if (k<(point/n+1)) le=k;
if (ri==n+1&&k>(point/n+1)) ri=k;
}
for (int k=le+1;k<ri;k++) a[k][point%n]=(a[k][point%n]+1)%2;
a[point/n+1][point%n]=(a[point/n+1][point%n]+1)%2;
}
if (point==n*n)
{
int w=0;
for (int i=1;i<=n;i++) for (int j=1;j<=n;j++) if (a[i][j]>0) w++;
if (w==n*n)
{
for (int i=1;i<=n;i++)
{
for (int j=1;j<=n;j++) printf("%d ",c[i*n-n+j]);
printf("\n");
}
exit(0);
}
}
else
{
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
b[i][j]=a[i][j];
ans(0,point+1);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
a[i][j]=b[i][j];
ans(1,point+1);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
a[i][j]=b[i][j];
}
}
int main()
{
scanf("%d",&n);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
scanf("%d",&a[i][j]);
for (int i=0;i<=1;i++) ans(i,1);
}