#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 2e5 + 10;
struct node{
int t, qx;
};
node crq[N];
bool cmp(node a, node b) {
return a.qx < b.qx;
}
priority_queue<int> q;
signed main() {
ios::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
int n, ans = 0, sum = 0;
cin >> n;
for (int i = 1; i <= n; i ++) {
cin >> crq[i].t >> crq[i].qx;
}
sort(crq + 1, crq + n + 1, cmp);
for (int i = 1; i <= n; i ++) {
if(sum + crq[i].t <= crq[i].qx) sum += crq[i].t, ans ++, q.push(crq[i].t);
else if(crq[i].t < q.top() && sum + crq[i].t - q.top() <= crq[i].qx) {
sum = sum + crq[i].t - q.top();
q.pop();
q.push(crq[i].t);
}
}
cout << ans;
return 0;
}
PS:不要管CRQ是什么