import sys input = sys.stdin.readline N = int(input()) D = [] for i in range(N): w, s = map(int, input().split()) D.append((s*(s + w), w, s)) D.sort() inf = 10 ** 18 dp = [inf] * (N + 1) dp[0] = 0 for i in range(N): for j in range(N -1, -1, -1): if D[i][2] >= dp[j]: dp[j + 1] = min(dp[j + 1], dp[j] + D[i][1]) ans = -1 for i in range(N + 1): if dp[i] != inf: ans = i print(ans)