#include <iostream>
#include <cstring>
int n;
int map[35][35];
int mark[35][35];
int dx[]={-1,0,1,0};
int dy[]={0,1,0,-1};
void dfs(int x,int y){
if(map[x][y]==1||x<0||x>n+1||y<0||y>n+1||mark[x][y]==1) return;
mark[x][y] = 1;
for(int i =0;i<4;i++){
if(y+dy[i]>n) dfs(x+1,1);
else dfs(x+dx[i],y+dy[i]);
}
}
int main(int argc, char** argv) {
memset(mark,0,sizeof(mark));
memset(map,0,sizeof(map));
scanf("%d",&n);
for(int i= 1;i<=n;i++){
for(int j=1;j<=n;j++)
scanf("%d",&map[i][j]);
}
dfs(0,0);
for(int i =1;i<=n;i++){
for(int j =1;j<=n;j++){
if(mark[i][j]==0&&map[i][j]==0) map[i][j] = 2;
}
}
for(int i =1;i<=n;i++){
for(int j =1;j<=n;j++) printf("%d ",map[i][j]);
printf("\n");
}
return 0;
}