n = int(input()) vt = [] MAX = 25000 dp = [False] * MAX for _ in range(n): v, t = map(int, input().split()) vt.append([(v + t), t]) vt.sort() V = [] T = [] for i in range(n): V.append(vt[i][0] - vt[i][1]) T.append(vt[i][1]) dp[0] = True for i in range(n): for j in range(T[i] - 1, -1, -1): dp[j + V[i]] |= dp[j] for i in range(MAX - 1, -1, -1): if dp[i]: print(i) break