from collections import deque n,v,sx,sy,gx,gy=map(int,input().split()) sx-=1;sy-=1;gx-=1;gy-=1 grid=[list(map(int,input().split())) for _ in range(n)] inf=float('inf') dst=[[inf]*n for _ in range(n)] dy=[0,1,0,-1];dx=[1,0,-1,0] visited=[[[False]*(v+1) for _ in range(n)] for _ in range(n)] hp=[[0]*n for _ in range(n)] q=deque() q.append((0,sy,sx,v)) while q: d,y,x,h=q.popleft() if (y,x)==(gy,gx): print(d) exit() if visited[y][x][h]: continue visited[y][x][h]=True if hp[y][x]>=h: continue hp[y][x]=h for i in range(4): ny,nx=y+dy[i],x+dx[i] if 0<=nygrid[ny][nx]: nh=h-grid[ny][nx] if not visited[ny][nx][nh] and hp[ny][nx]