#include<cstdio>
#include<algorithm>
#include<set>
using namespace std;
struct punct{int x,y;};
punct a[50001];
bool cmp(punct a,punct b){
if(a.x<b.x)
return true;
else if(a.x>b.x)
return false;
else if(a.y<b.y)
return true;
else
return false;
}
set <int> s;
set <int>::iterator it;
int main(){
int n,xp,yp,nr,k,i,c,d,x,y;
freopen("pachete.in","r",stdin);
freopen("pachete.out","w",stdout);
nr=0;
//cadranul 1
scanf("%d%d%d",&n,&xp,&yp);
k=0;
for(i=1;i<=n;i++){
scanf("%d%d",&x,&y);
x-=xp;
x-=yp;
if(x>0&&y>0){
k++;
a[k].x=x;
a[k].y=y;
}
}
if(k!=0){
sort(a+1,a+k+1,cmp);
s.insert(a[1].y);
for(i=2;i<=k;i++){
it=s.begin();
if(a[i].y<*it)
s.insert(a[i].y);
else{
it=s.lower_bound(a[i].y);
it--;
s.erase(it);
s.insert(a[i].y);
}
}
nr+=s.size();
}
s.clear();
//cadranul 2
freopen("pachete.in","r",stdin);
scanf("%d%d%d",&n,&xp,&yp);
k=0;
for(i=1;i<=n;i++){
scanf("%d%d",&x,&y);
x-=xp;
y-=yp;
if(x<0&&y>0){
k++;
a[k].x=-x;
a[k].y=y;
}
}
if(k!=0){
sort(a+1,a+k+1,cmp);
s.insert(a[1].y);
for(i=2;i<=k;i++){
it=s.begin();
if(a[i].y<*it)
s.insert(a[i].y);
else{
it=s.lower_bound(a[i].y);
it--;
s.erase(it);
s.insert(a[i].y);
}
}
nr+=s.size();
}
s.clear();
//cadranul 3
freopen("pachete.in","r",stdin);
scanf("%d%d%d",&n,&xp,&yp);
k=0;
for(i=1;i<=n;i++){
scanf("%d%d",&x,&y);
x-=xp;
y-=yp;
if(x<0&&y<0){
k++;
a[k].x=-x;
a[k].y=-y;
}
}
if(k!=0){
sort(a+1,a+k+1,cmp);
s.insert(a[1].y);
for(i=2;i<=k;i++){
it=s.begin();
if(a[i].y<*it)
s.insert(a[i].y);
else{
it=s.lower_bound(a[i].y);
it--;
s.erase(it);
s.insert(a[i].y);
}
}
nr+=s.size();
}
s.clear();
//cadranul 4
freopen("pachete.in","r",stdin);
scanf("%d%d%d",&n,&xp,&yp);
k=0;
for(i=1;i<=n;i++){
scanf("%d%d",&x,&y);
x-=xp;
y-=yp;
if(x>0&&y<0){
k++;
a[k].x=x;
a[k].y=-y;
}
}
if(k!=0){
sort(a+1,a+k+1,cmp);
s.insert(a[1].y);
for(i=2;i<=k;i++){
it=s.begin();
if(a[i].y<*it)
s.insert(a[i].y);
else{
it=s.lower_bound(a[i].y);
it--;
s.erase(it);
s.insert(a[i].y);
}
}
nr+=s.size();
}
s.clear();
printf("%d",nr);
return 0;
}