#include
#include
#include
using namespace std;
int n,x,y;//n张地毯,x,y为所求坐标
struct node{
int a,b,g,k,num;//矩形的左下角坐标(a,b),长和宽(g,k),以及编号num
}a[10005];
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
int a1,b1,g1,k1;
scanf("%d%d%d%d",&a1,&b1,&g1,&k1);
a[i].a=a1,a[i].b=b1,a[i].g=g1,a[i].k=k1,a[i].num=i;//读入地毯信息
}
scanf("%d%d",&x,&y);//读入所求坐标
for(int i=n;i>=1;i--){//由于后铺的地毯覆盖在前面已经铺好的地毯之上,所以从后往前枚举
if(x>=a[i].a&&x<=a[i].a+a[i].g&&y>=a[i].b&&y<=a[i].b+a[i].k){//判断坐标是否在该地毯内
printf("%d",a[i].num);
return 0;//输出后结束程序
}
}
printf("-1");//所有地毯都没有覆盖该坐标
return 0;
