#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define BET(a,b,c) ((a)<=(b)&&(b)<(c)) #define FOR(i,n) for(int i=0,i##_end=(int(n));i VI; typedef vector VVI; int dx[] = {0,1,0,-1}; int dy[] = {1,0,-1,0}; bool visited[100][100][10000+1]; int L[111][111]; int main() { int N,V,sx,sy,gx,gy; cin>>N>>V>>sx>>sy>>gx>>gy; sx--; sy--; gx--; gy--; FOR(i,N) FOR(j,N) scanf("%d",&L[i][j]); queue qu; qu.push(sx); qu.push(sy); qu.push(V); qu.push(0); memset(visited , 0 , sizeof(visited)); while(!qu.empty()){ int x = qu.front(); qu.pop(); int y = qu.front(); qu.pop(); int vital = qu.front(); qu.pop(); int step = qu.front(); qu.pop(); if(vital <= 0) continue; if(visited[x][y][vital]++) continue; if(x == gx && y == gy){ cout<= L[ny][nx]){ qu.push(nx); qu.push(ny); qu.push(vital - L[ny][nx]); qu.push(step+1); } } } puts("-1"); return 0; }