from Queue import deque N,V,sx,sy,gx,gy=map(int,raw_input().split()) sx -= 1; sy -= 1; gx -= 1; gy -= 1 L = [map(int,raw_input().split()) for i in xrange(N)] dxy = ((1,0),(0,1),(-1,0),(0,-1)) Q = deque([(sx,sy,V,0)]) visited = [[0]*N for i in xrange(N)] visited[sy][sx] = V while Q: hx,hy,v,c = Q.popleft() if hx == gx and hy == gy: print c; break for dx,dy in dxy: nx = hx + dx; ny = hy + dy if 0 <= nx < N and 0 <= ny < N: nv = v - L[ny][nx] if nv > 0 and visited[ny][nx] <= nv: visited[ny][nx] = nv Q.append((nx,ny,nv,c+1)) else: print -1