#include using namespace std; using ll = long long; const int N = 1005; int n, idx[N]; ll w[N], s[N], dp[2][N]; int main() { scanf("%d", &n); for (int i = 1; i <= n; i++) { scanf("%d %d", &w[i], &s[i]); idx[i] = i; } sort(idx + 1, idx + n + 1, [&] (int a, int b) { return w[a] + s[a] < w[b] + s[b]; }); for (int j = 1; j <= n; j++) dp[0][j] = 1e18; for (int i = 1; i <= n; i++) { for (int j = 0; j <= n; j++) dp[i & 1][j] = 1e18; for (int j = 0; j <= i; j++) { dp[i & 1][j] = dp[!(i & 1)][j]; if (j && dp[!(i & 1)][j - 1] <= s[idx[i]]) { dp[i & 1][j] = min(dp[i & 1][j], dp[!(i & 1)][j - 1] + w[idx[i]]); } } } int ans = 0; for (int j = 1; j <= n; j++) { if (dp[n & 1][j] != 1e18) ans = j; } printf("%d", ans); }