#include<iostream>
using namespace std;
int a[10002][10002],t[4][2]= {-1,0,1,0,0,-1,0,1},n;
struct bfs {
int x,y;
};
int main() {
bfs qq[10002];
int head=1,tail=2;
qq[1].x=1;
qq[1].y=1;
cin>>n;
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
cin>>a[i][j];
}
}
while(head<tail) {
for(int i=0; i<4; i++) {
int tx=qq[head].x+t[i][0],ty=qq[head].y+t[i][1];
if(tx<0||tx>n||ty<0||ty>n) continue;
if(a[tx][ty]==0) {
a[tx][ty]=-1;
qq[tail].x=tx;
qq[tail].y=ty;
tail++;
}
}
head++;
}
for(int i=1; i<=n; i++) {
for(int j=1; j<=n; j++) {
if(a[i][j]==-1) {
cout<<0<<" ";
} else if(a[i][j]==0) {
cout<<2<<" ";
} else {
cout<<1<<" ";
}
}
cout<<endl;
}
return 0;
}