#include <fstream>
#include <algorithm>
#define f first
#define s second
#define DIM 100010
#define LL long long
using namespace std;
ifstream fin ("date.in" );
ofstream fout("date.out");
LL N, M, i, j, K, ok, minim;
pair <LL, LL> V[DIM];
int Heap[DIM], L, X, sum;
void SetUp(){
fin >> N >> L >> X;
for(i = 1; i <= N; i ++)
fin >> V[i].f >> V[i].s;
sort(V + 1, V + N + 1);
return;
}
void Swap(LL a, LL b){
LL c;
c = Heap[a];
Heap[a] = Heap[b];
Heap[b] = c;
return;
}
void Shift(LL c){
LL p = c / 2;
while(p != 0){
if(Heap[p] < Heap[c]){
Swap(p, c);
c = p;
p /= 2;
}
else
break;
}
return;
}
void HeapExpert(){
i = N;
while(V[i].f > L)
i --;
while(i != 0){
for(j = 1; j < DIM; j ++)
Heap[j] = 0;
M = 0; L -= X;
while(i != 0 && V[i].f > L){
M ++;
Heap[M] = V[i].s;
i --;
Shift(M);
}
sum += Heap[1];
}
fout << sum;
return;
}
int main(){
SetUp();
HeapExpert();
return 0;
}