#include<stdio.h>
#define N 50002
long x[N],y[N],n,dx,dy,i,a[N],b[N],m=N,s[N]={0},z[N]={0},p=0,r,t=0,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=1;i<=n;i++)
z[x[i]]++,t+=x[i];
z[x[1]-1]=s[x[1]-1]=0;
for(j=a[1];j<=a[n];j++)
s[j]=s[j-1]+z[j];
for(i=a[1],r=t;i<=x[n]-dx;i++)
{z[i-1]+=z[i-2];
p+=z[i-1];
r=r-s[x[n]]+s[i];
if(m>p+r)
m=p+r;}
merge(y,x,1,n);
for(i=y[1];i<=y[n];i++)
s[i]=z[i]=0;
for(i=1,t=0;i<=n;i++)
z[y[i]]++,t+=y[i];
z[y[1]-1]=s[y[1]-1]=0;
for(j=y[1];j<=y[n];j++)
s[j]=s[j-1]+z[j];
for(i=y[1],r=t,p=0;i<=y[n]-dy;i++)
{z[i-1]+=z[i-2];
p+=z[i-1];
r=r-s[a[n]]+s[i];
if(q>p+r)
q=p+r;}
fprintf(g,"%ld",m+q);
return 0;}