import sys
input = lambda : sys.stdin.readline().rstrip()

sys.setrecursionlimit(2*10**5+10)
write = lambda x: sys.stdout.write(x+"\n")
debug = lambda x: sys.stderr.write(x+"\n")
writef = lambda x: print("{:.12f}".format(x))


n = int(input())
ws = [list(map(int, input().split())) for _ in range(n)]
ws.sort(key=lambda i: sum(i))
inf = 10**12
dp = [inf]*(n+1)
dp[0] = 0
for i in range(n):
    w,s = ws[i]
    ndp = [inf]*(n+1)
    for j in range(n):
        if dp[j]<=s:
            ndp[j+1] = min(ndp[j+1], dp[j]+w)
        ndp[j] = min(ndp[j], dp[j])
    dp = ndp
for i in range(n+1)[::-1]:
    if dp[i]<inf:
        break
ans = i
print(ans)