n = int(input()) inf = 1 << 60 ma = 10 ** 5 dp = [inf] * (ma + 1) dp[0] = 0 for _ in range(n): a, b = map(int, input().split()) ndp = [inf] * (ma + 1) for i in range(a, ma + 1): ndp[i] = min(ndp[i], dp[i - a]) for i in range(ma + 1): ndp[i] = min(ndp[i], dp[i] + b) dp = ndp ans = 1 << 60 for i in range(ma + 1): ans = min(ans, max(i, dp[i])) print(ans)