#include<cstdio>
#include<climits>
int a,b,n,l,c,i,j,k,x[50001],y[50001],xs[50001],xd[50002],ys[50001],yd[50001],minx,miny;
FILE *f,*g;
int main(){
f=fopen("tribute.in","r");
g=fopen("tribute.out","w");
fscanf(f,"%d%d%d",&n,&l,&c);
for(i=1;i<=n;i++){
fscanf(f,"%d%d",&a,&b);
x[a]++;
y[b]++;
}
minx=miny=INT_MAX;
xs[0]=0;
k=x[0];
for(i=1;i<=50000;i++){
xs[i]=xs[i-1]+k;
k+=x[i];
}
k=x[50000];
xd[50000]=0;
for(i=49999;i>=0;i--){
xd[i]=xd[i+1]+k;
k+=x[i];
}
for(i=0;i<=50000-l;i++){
if(xs[i]+xd[i+l]<minx)
minx=xs[i]+xd[i+l];
}
ys[0]=0;
k=y[0];
for(i=1;i<=50000;i++){
ys[i]=ys[i-1]+k;
k+=y[i];
}
k=y[50000];
yd[50000]=0;
for(i=49999;i>=0;i--){
yd[i]=yd[i+1]+k;
k+=y[i];
}
for(i=0;i<=50000-c;i++){
if(ys[i]+yd[i+c]<miny)
miny=ys[i]+yd[i+c];
}
fprintf(g,"%d",minx+miny);
fclose(f);
fclose(g);
return 0;
}