#include<bits/stdc++.h>
using namespace std;
struct node {
int x1,x2,y1,y2;
double k,b;
}a[100005];
int n,s,y=0x3f3f3f3f,yy,ii;
int main(){
scanf("%d%d",&n,&s);
for(int i=1;i<=n;i++){
scanf("%d%d%d%d",&a[i].x1,&a[i].y1,&a[i].x2,&a[i].y2 );
a[i].k =(1.0*a[i].y1-a[i].y2)/(a[i].x1-a[i].x2);
a[i].b =1.0*(a[i].y2*a[i].x1-a[i].y1*a[i].x2)/(a[i].x1-a[i].x2);
}
while(1){
ii=0;
yy=y;
for(int i=1;i<=n;i++){
if(s<max(a[i].x1 ,a[i].x2 )&&s>min(a[i].x1 ,a[i].x2 )&&((yy>s*a[i].k +a[i].b&&yy==y)||(yy!=y&&yy<s*a[i].k +a[i].b ))){
yy=s*a[i].k +a[i].b;
ii=i;
}
}
if(!ii){
printf("%d\n",s);
exit(0);
}
else{
if(a[ii].y1 <a[ii].y2 ){
y=a[ii].y1 ;
s=a[ii].x1 ;
}
else {
y=a[ii].y2 ;
s=a[ii].x2 ;
}
}
}
return 0;
}