N,V,Sy,Sx,Gy,Gx = map(int,input().split()) L = [list(map(int,input().split())) for _ in range(N)] Sx -= 1 Sy -= 1 Gx -= 1 Gy -= 1 D = [[0] * N for _ in range(N)] D[Sx][Sy] = V Q = [(Sx,Sy)] Q2 = [] dir = [[0,1],[1,0],[-1,0],[0,-1]] cnt = 0 while Q: while Q: x, y = Q.pop() if (x, y) == (Gx,Gy): print(cnt) exit() for xd, yd in dir: x1 = x + xd y1 = y + yd if 0 <= x1 < N and 0 <= y1 < N: tmp = D[x][y] - L[x1][y1] if D[x1][y1] < tmp: D[x1][y1] = tmp Q2.append((x1,y1)) Q,Q2 = Q2,Q cnt += 1 print(-1)