class Node :
def __init__(self,sum,c,b,s):
self.sum = sum
self.c = c
self.b = b
self.s = s
def insert(x,y):
global a,b
c=[[-1,0],[0,-1],[0,1],[+1,0]]
for i in range(4):
if b[x + c[i][0]][y + c[i][1]]!=1:
a[x + c[i][0]][y + c[i][1]].s = 1
a[x + c[i][0]][y + c[i][1]].c = a[x][y].c + 1
n=int(input())
a=[[Node(0,0,0,0) for i in range(n+1)]for j in range(n+1)]
b=[]
for i in range(n):
t=list(map(int,input().split()))
b.append(t)
sx,sy,gx,gy=map(int,input().split())
sx=sx-1
sy=sy-1
gx=gx-1
gy=gy-1
x=sx
y=sy
min=10000
a[sx][sy].s=1
while a[gx][gy].s!=2:
for i in range(n):
for j in range(n):
if a[i][j].s == 1: # s : 방문여부
a[i][j].b=abs(i-gx)+abs(j-gy)
a[i][j].sum=a[i][j].c+a[i][j].b
if a[i][j].sum<min:
min=a[i][j].sum
x=i
y=j
insert(x,y)
a[x][y].s=2
min=10000
print(a[gx][gy].c)