#include using namespace std; using ll = long long; int main(){ int n,v; cin>>n>>v; int x,y; cin>>y>>x; x--;y--; vector >l(n,vector(n)); for(int i = 0;i>l[i][j]; vector > > vis(n,vector >(n,vector(2,-1))); vis[0][0][0] = v; priority_queue,pair > > que; que.push(make_pair(make_pair(v,0),make_pair(0,0))); int dx[] = {1,-1,0,0}; int dy[] = {0,0,1,-1}; while(que.size()){ int i,j; tie(i,j) = que.top().second; int now,k; tie(now,k) = que.top().first; que.pop(); if(now=n||nj<0||nj>=n) continue; int nxt = now - l[ni][nj]; if(nxt<=0) continue; if(nxt<=vis[ni][nj][k]) continue; vis[ni][nj][k] = nxt; que.push(make_pair(make_pair(nxt,k),make_pair(ni,nj))); } } if(vis[n-1][n-1][0]>0||vis[n-1][n-1][1]>0) cout<<"YES\n"; else cout<<"NO\n"; }