#include<bits/stdc++.h>
using namespace std;
struct node{
long long t1,t2;
}a[150005];
long long ans,t;
bool cmp(node c,node b){
return c.t2<b.t2;
}
priority_queue<node>q;
int main(){
int n; cin>>n;
for(int i=1;i<=n;i++) cin>>a[i].t1>>a[i].t2;
sort(a+1,a+n+1,cmp);
for(int i=1;i<=n;i++){
if(a[i].t1<a[i].t2-t){
q.push(a[i]);
t+=a[i].t1;
ans++;
}
else{
if(a[i].t1<q.top().t1){
t-=q.top().t1;
q.push(a[i]);
t+=q.top().t1;
}
}
}
cout<<ans;
return 0;
}