queue=[]
l=int(input())
mark=land=[[0]*(l+2) for _ in range(l+2)]
tmp=[list(map(int,input().split())) for _ in range(l)]
for i in range(l):
mark[i+1][1:l+1]=land[i+1][1:l+1]=tmp[i]
dirs = [
lambda x,y:(x+1,y),
lambda x,y:(x-1,y),
lambda x,y:(x,y+1),
lambda x,y:(x,y-1),
]
queue.append((0,0))
while(queue):
tmp=queue.pop(0)
mark[tmp[0]][tmp[1]]=-1
for dir in dirs:
x,y=dir(tmp[0],tmp[1])
if x>=0 and x<l+1 and y >=0 and y <l+1 and mark[x][y]==0:
queue.append((x,y))
for i in range(1,l+1):
for j in range(1,l+1):
if land[i][j]==1:
print('1',end=' ')
elif land[i][j]==0 and mark[i][j]==0:
print('2',end=' ')
else:
print('0',end=' ')
print()