#include using namespace std; #define rep(i,n) for(int i=0; i<(n); i++) #define INF ((1LL<<62)-(1LL<<31)) #define all(a) (a).begin(),(a).end() #define rall(a) (a).rbegin(),(a).rend() typedef long long ll; typedef pair pl; typedef tuple tupl; int dx[4]={0,0,1,-1}; int dy[4]={-1,1,0,0}; int main() { int h,w; cin >> h >> w; int u,d,r,l; ll k,p; cin >> u >> d >> r >> l >> k >> p; int sx,sy,gx,gy; cin >> sx >> sy >> gx >> gy; sx--; sy--; gx--; gy--; vector s(h); rep(i,h) cin >> s[i]; queue> q; vector> dist(h,vector (w,INF)); dist[sx][sy]=0; q.push({sx,sy}); while(!q.empty()) { int x=q.front().first; int y=q.front().second; q.pop(); rep(i,4) { int nx=x+dx[i],ny=y+dy[i]; if(nx<0||nx>=h||ny<0||ny>=w) continue; if(s[nx][ny]=='#') continue; ll cur=dist[x][y]; if(i==0) cur+=u; if(i==1) cur+=d; if(i==2) cur+=r; if(i==3) cur+=l; if(s[nx][ny]=='@') cur+=p; if(dist[nx][ny]>cur) dist[nx][ny]=cur; else continue; q.push({nx,ny}); } } if(dist[gx][gy]<=k) cout << "Yes" << endl; else cout << "No" << endl; return 0; }