#include<stdio.h>
#define N 50002
long x[N],y[N],n,dx,dy,i,a[N],b[N],m=N,s[N],z[N],p[N],r[N],j,q=N;
void merge(long x[N],long y[N],long p,long q)
{long i,j,k,m=(p+q)/2;
if(p==q)
return;
merge(x,y,p,m);
merge(x,y,m+1,q);
for(i=k=p,j=m+1;i<=m||j<=q;)
if(j>q||(i<=m&&(x[i]<x[j]||(x[i]==x[j]&&y[i]<y[j]))))
a[k]=x[i],b[k++]=y[i++];
else
a[k]=x[j],b[k++]=y[j++];
for(i=p;i<=q;i++)
x[i]=a[i],y[i]=b[i];}
int main()
{FILE *f=fopen("tribute.in","r"),*g=fopen("tribute.out","w");
fscanf(f,"%ld%ld%ld",&n,&dx,&dy);
for(i=1;i<=n;i++)
fscanf(f,"%ld%ld",&x[i],&y[i]);
merge(x,y,1,n);
for(i=x[1];i<=x[n];i++)
s[i]=z[i]=p[i]=r[i]=0;
for(i=1;i<=n;i++)
z[x[i]]++,s[x[i]]++;
z[x[1]-1]=p[x[1]-1]=s[x[n]-x[1]+2]=r[x[1]-1]=0;
for(i=x[1];i<=x[n]-dx;i++)
{z[i-1]+=z[i-2];
p[i]=p[i-1]+z[i-1];
s[x[n]-i+1]+=s[x[n]-i+2];
r[i]=r[i-1]+s[x[n]-i+1];}
for(i=x[1];i<=x[n]-dx;i++)
if(m>p[i]+r[x[n]-dx-i])
m=p[i]+r[x[n]-dx-i];
merge(y,x,1,n);
for(i=y[1];i<=y[n];i++)
s[i]=z[i]=p[i]=r[i]=0;
for(i=1;i<=n;i++)
z[y[i]]++,s[y[i]]++;
z[y[1]-1]=s[y[n]-y[1]+2]=p[x[1]-1]=r[x[1]-1]=0;
for(i=y[1];i<=y[n]-dy;i++)
{z[i-1]+=z[i-2];
p[i]=p[i-1]+z[i-1];
s[y[n]-i+1]+=s[y[n]-i+2];
r[i]=r[i-1]+s[y[n]-i+1];}
for(i=y[1];i<=y[n]-dy;i++)
if(q>p[i]+r[y[n]-dy-i])
q=p[i]+r[y[n]-dy-i];
fprintf(g,"%ld",m+q);
return 0;}