#include <bits/stdc++.h>
using namespace std;
typedef long long int ll ;
int main()
{
vector<vector<ll>> stations ;
ll n ;
cin>>n ;
ll t,s ;
cin>>t>>s ;
ll i = 0 ;
while(i<n)
{
ll x,y;
cin>>x>>y ;
ll real = t - x ;
if(real>=1)
{
vector <ll> a ;
a.push_back(real);
a.push_back(y);
stations.push_back(a);
}
i++;
}
priority_queue<ll> pq;
i=0;
n=stations.size();
ll ans=0;
while(s<t && i<n)
{
if(s>=stations[i][0])
{
pq.push(stations[i][1]);
i++;
}
else
{
if(pq.empty())
{
return -1;
}
else
{
ans++;
s+=pq.top();
pq.pop();
}
}
}
while(!pq.empty() && s<t)
{
s+=pq.top();
pq.pop();
ans++;
}
if(s>=t)
{
cout<<ans;
}
else
{
cout<<"-1";}
return 0 ;
}