#include <iostream>
#include<cmath>
#include<cstdio>
#include<algorithm>
#include<cstring>
using namespace std;
#define g 9.80
#define eps 1e-8
int top;

int n;
double v,xx,yy;
struct rectangle
{
       double l,r,b,t;
}rec[101];

bool judge(double a,double len )
{
     int i;
     double hh = a*xx*(xx-len);
     double hi = -a*len*len/4.0;//抛物&#32447;最高点的y坐&#26631; 
     if ( yy-hh>eps || yy-hi>eps ) return false;//抛物&#32447;&#39134;&#36807;pig下方 
     for ( i=1;i<=n;i++ )
     {
         if ( rec[i].l>xx ) break;//障碍物的左&#36793;界大于pig的x坐&#26631; 
         double h1 = a*rec[i].l*(rec[i].l-len );//左&#36793;界&#23545;&#24212;的高度 
         double h2 = a*rec[i].r*(rec[i].r-len );//右&#36793;界&#23545;&#24212;的高度 
         if ( h1>=rec[i].b && h1<=rec[i].t ) return false;
         if ( h2>=rec[i].b && h2<=rec[i].t ) return false;//撞上&#36793;界 
         if ( h1<rec[i].b && h2<rec[i].b ) //抛物&#32447;从矩形下方&#39134;&#36807; 
              if (  len/2-rec[i].l>eps && rec[i].r-len/2>eps && hi-rec[i].b>eps  ) 
                 return false;//抛物&#32447;最高点在矩形中或者高于矩形 
         if ( rec[i].l<=xx && rec[i].r>=xx  && rec[i].b>yy ) //pig 在一个矩形的下面 
             if ( hh>rec[i].t ) return false;
     }
     return true;
}


void solve()
{
     int i;
     double h,t,vx,vy,len;
     for ( i=1;i<=1000000;i++ )
     {
           vy=double(i)/1000000*v;
           vx=sqrt(v*v-vy*vy);
           t=vy/g;
           h = g*t*t/2;
           len = vx*2*t;
           if ( xx-len>eps ) continue;
           else
           {
               double a = (-2*vy*vy)/(g*len*len);
               if ( judge(a,len) )
               {
                    printf("Yes\n");
                    return ;
               }
           }
     }
     printf("No\n");
}

bool cmp(rectangle a,rectangle b)
{
     return a.l<b.l;
}

int main()
{
    int i;
    while ( scanf("%d %lf %lf %lf",&n,&v,&xx,&yy)!=EOF )
    {
          for ( i=1;i<=n;i++ )
          {
              scanf("%lf %lf %lf %lf",&rec[i].l,&rec[i].b,&rec[i].r,&rec[i].t);
              rec[i].r = min(xx,rec[i].r);
          }
          sort(rec+1,rec+n+1,cmp);
          solve();
    }
    return 0;
}
          
          
          
          