from Queue import deque I=lambda:map(int,raw_input().split()) N,V,Sx,Sy,Gx,Gy=I();Sx-=1;Sy-=1;Gx-=1;Gy-=1 L=[I()for i in xrange(N)];dxy=((1,0),(0,1),(-1,0),(0,-1)) Vs=[[0]*N for i in xrange(N)];Vs[Sy][Sx]=V;Q=deque([(Sx,Sy,V,0)]) while Q: hx,hy,v,c=Q.popleft() if(hx,hy)==(Gx,Gy):print c;break if vVs[ny][nx]: Vs[ny][nx]=v-L[ny][nx] Q.append((nx,ny,v-L[ny][nx],c+1)) else:print -1