n,v,sy,sx,gy,gx = map(int,input().split()) b = [list(map(int,input().split())) for _ in range(n)] mv = [[-1]*n for _ in range(n)] mv[sx-1][sy-1] = v from collections import deque q = deque([(0,v,sx-1,sy-1)]) while q: dv,v,x,y = q.popleft() if x==gx-1 and y==gy-1: print(dv) exit() for nx,ny in [(x+1,y),(x-1,y),(x,y-1),(x,y+1)]: if 0 <= nx < n and 0 <= ny < n: nv = v - b[nx][ny] if nv <= 0: continue if mv[nx][ny] < nv: mv[nx][ny] = nv q.append((dv+1,nv,nx,ny)) print(-1)