#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,d,k,s[1000010],x[1000010],deq[1000010],f[1000010],sum;
int read()
{
int zchissuperboy;
scanf("%lld",&zchissuperboy);
return zchissuperboy;
}
int check(int g)
{
int ll=1,rr=0,minp=max(1ll,d-g),maxp=d+g,now=0;
memset(f,0,sizeof f);
for(int i=1;i<=n;i++)
{
while(s[i]-s[now]>=minp&&now<i)
{
if(ll<=rr)
{
while(ll<=rr&&f[now]>=f[deq[rr]])
rr--;
}
deq[++rr]=now;
now++;
}
while(ll<=rr&&s[i]-s[deq[ll]]>maxp)
ll++;
if(ll<=rr) f[i]=f[deq[ll]]+x[i];
else f[i]=-1e18;
if(f[i]>=k) return 1;
}
return 0;
}
signed main()
{
cin>>n>>d>>k;
for(int i=1;i<=n;i++)
s[i]=read(),x[i]=read(),sum+=max(0ll,x[i]);
if(sum<k)
{
cout<<-1<<endl;
return 0;
}
int l=0,r=1e9;
while(l+1<r)
{
int mid=(l+r)/2;
if(check(mid)) r=mid;
else l=mid+1;
}
cout<<r<<endl;
return 0;
}