#include<bits/stdc++.h>
using namespace std;
int n,mapp[31][31];
const int fx[5]={0,1,0,-1,0};
const int fy[5]={0,0,1,0,-1};
queue<int> qy;
queue<int> qx;
void bfs(int x,int y){
qx.push(x);
qy.push(y);
while(!qx.empty()){
for(int i=1;i<=4;i++){
int nx=fx[i]+qx.back();
int ny=fy[i]+qy.back();
if(mapp[nx][ny]==0&&nx<=n&&ny<=n&&nx>=1&&ny>=1){
qx.push(nx);
qy.push(ny);
mapp[nx][ny]=2;
}
}
qx.pop();
qy.pop();
}
}
int main(){
cin>>n;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>mapp[i][j];
}
}
for(int i=1;i<=n;i++){
if(mapp[i][1]!=2&&mapp[i][1]!=1){
mapp[i][1]=2;
bfs(i,1);
}
}
for(int i=1;i<=n;i++){
if(mapp[i][n]!=2&&mapp[i][n]!=1){
mapp[i][n]=2;
bfs(i,n);
}
}
for(int j=1;j<=n;j++){
if(mapp[1][j]!=2&&mapp[1][j]!=1){
mapp[1][j]=2;
bfs(1,j);
}
}
for(int j=1;j<=n;j++){
if(mapp[n][j]!=2&&mapp[n][j]!=1){
mapp[n][j]=2;
bfs(n,j);
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cout<<2-mapp[i][j]<<" ";
}
cout<<endl;
}
return 0;
}