#include<bits/stdc++.h>
using namespace std;
const int N=1e7+5;
int n,res;
struct qq
{
int t1,t2;
};qq d[N];
bool cmp(qq x,qq y)
{
return x.t2<y.t2;
}
priority_queue<int>q;
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
{
cin>>d[i].t1>>d[i].t2;
}
sort(d+1,d+n+1,cmp);
int ans=d[n].t2;
for(int i=1;i<=n;i++)
{
if(d[i].t1>ans)
{
if(d[i].t1<q.top())
{
ans+=q.top();
q.pop();
q.push(d[i].t1);
ans-=d[i].t1;
}
continue;
}
else
{
q.push(d[i].t1);
ans-=d[i].t1;
res++;
}
}
cout<<res;
return 0;
}