#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1000005;
int n,d,k,x[N],v[N],L,R=2001,mid,f[N],q[N];
bool pd()
{
int l=1,r=0,j=0,zx=max(1ll,d-mid),zd=d+mid;
memset(f,-0x7f7f7f7f,sizeof(f));
f[0]=0;
for(int i=1;i<=n;i++)
{
while(x[j]+zd<x[i]) ++j;
while(j<i&&x[q[j]]+zd>=x[i]&&x[j]+zx<=x[i])
{
while(l<=r&&v[q[r]]<=v[j]||x[q[r]]+zd<x[j]) --r;
q[++r]=j;
++j;
}
while(l<=r&&x[q[l]]+zd<x[i]) ++l;
if(l<=r)
f[i]=f[q[l]]+v[i];
if(f[i]>=k)
return true;
}
return false;
}
signed main()
{
scanf("%lld%lld%lld",&n,&d,&k);
for(int i=1;i<=n;i++)
scanf("%lld%lld",&x[i],&v[i]);
while(L<R)
{
mid=(L+R)>>1;
if(pd())
R=mid;
else
L=mid+1;
}
if(L==2001)
printf("-1");
else
printf("%lld",L);
return 0;
}