#yuki34 n,v,sx,sy,gx,gy=map(int,raw_input().split()) sx,sy,gx,gy=sx-1,sy-1,gx-1,gy-1 l=[] for i in xrange(n): l.append(map(int,raw_input().split())) p=[[0]*n for i in xrange(n)] dxy=((1,0),(0,1),(-1,0),(0,-1)) q=[[sx,sy,v,0]] while q: x,y,v,d=q.pop(0) if (x,y)==(gx,gy): print d break if p[y][x]>v: continue p[y][x]=v for dx,dy in dxy: nx,ny=x+dx,y+dy if 0<=nxp[ny][nx]: p[ny][nx]=v-l[ny][nx] q.append([nx,ny,v-l[ny][nx],d+1]) else: print -1