#include using namespace std; int main(){ int H,W; cin>>H>>W; vector>A(H,vector(W)); int cost[4]; int dx[4]={-1,1,0,0}; int dy[4]={0,0,1,-1}; long long K,P; cin>>cost[0]>>cost[1]>>cost[2]>>cost[3]>>K>>P; int Sx,Sy,Gx,Gy; cin>>Sx>>Sy>>Gx>>Gy; --Sx,--Sy,--Gx,--Gy; for(int i=0;i>A[i][j]; } vector>dist(H,vector(W,1e18)); dist[Sx][Sy]=0; auto comp=[](pair> a,pair> b){ return bool(a.first>b.first); }; priority_queue< pair>, vector>>, decltype(comp) >dijk(comp); dijk.push({0,{Sx,Sy}}); while(dijk.size()){ int x=dijk.top().second[0],y=dijk.top().second[1]; long long dd=dijk.top().first; dijk.pop(); if(dd>dist[x][y])continue; for(int i=0;i<4;i++){ if(x+dx[i]>=0&&x+dx[i]=0&&y+dy[i]