#include <stdio.h>
#include <string.h>
void ord(int *a,int *b,int n){
int i,j,aux,aux2;
for(i=0;i<n;i++){
for(j=i+1;j<n;j++){
if(a[i]<a[j]){
aux=a[i];
a[i]=a[j];
a[j]=aux;
aux2=b[i];
b[i]=b[j];
b[j]=aux2;
}
}
}
}
void plus(int *v,int ad,int n){
int i;
for(i=0;i<n;i++)
v[i]=v[i]+ad;
}
void print(int *a,int n){
int i;
for(i=0;i<n;i++)
printf("%d ",a[i]);
}
int main(){
int i,j,k,n,h,u,v[100],w[100],vv[100],ww[100],total1=0,total2=0;
int total=0;
FILE* f;
FILE* g;
f=fopen("gutui.in","r");
g=fopen("gutui.out","w");
fscanf(f,"%d %d %d",&n,&h,&u);
for(i=0;i<n;i++){
fscanf(f,"%d %d",&j,&k);
v[i]=j;
w[i]=k;
}
for(i=0;i<n;i++)
vv[i]=v[i];
for(i=0;i<n;i++)
ww[i]=w[i];
ord(v,w,n);
for(i=0;i<n;i++){
if(v[i]<=h){
total1=total1+w[i];
plus(v,u,n);
}
}
ord(ww,vv,n);
for(i=0;i<n;i++){
if(vv[i]<=h){
total2=total2+ww[i];
plus(vv,u,n);
}
}
if(total1>total2)
fprintf(g,"%d",total1);
else
fprintf(g,"%d",total2);
close(f);
close(g);
return 1;
}