N = int(input()) X = [] for _ in range(N): V, T = map(int, input().split()) X.append((V, T)) X.sort(key=sum) M = 20000 DP = [False] * M DP[0] = True for V, T in X: for j in reversed(range(T)): DP[j + V] |= DP[j] print(max(v for v in range(M) if DP[v]))