#include <bits/stdc++.h>
using namespace std;
int a[35][35];
int bx[4]= {1,-1,0,0},by[4]= {0,0,1,-1},n;
struct node {
int x,y;
};
queue<node> q;
int bfss(int x1,int y1) {
q.push({x1,y1});
a[x1][y1]=2;
while(!q.empty()) {
int xx=q.front().x,yy=q.front().y;
q.pop();
for(int i=0; i<4; i++) {
int nx=xx+bx[i],ny=yy+by[i];
if(nx<1||nx>n||ny<1||ny>n||a[nx][ny]!=0) {
continue;
}
q.push({nx,ny});
a[nx][ny]=2;
}
}
}
int main() {
cin>>n;
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
cin>>a[i][j];
}
}
int x1,y1,flag=0;
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(a[i][j]==1&&flag==0) {
x1=i;
y1=j;
flag=1;
}
}
}
bfss(x1+1,y1+1);
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
cout<<a[i][j]<<" ";
}
cout<<endl;
}
return 0;
}