import sys
input = sys.stdin.buffer.readline
sys.setrecursionlimit(10 ** 7)
inf = 10**10
U = 10**5

N = int(input())
A = [0] * N
B = [0] * N
for i in range(N):
    A[i], B[i] = map(int, input().split())

Bsum = sum(B)
dp = [-inf] * (U + 1)
dp[0] = 0

for a, b in zip(A, B):
    for i in reversed(range(a, U + 1)):
        dp[i] = max(dp[i], dp[i-a] + b)

ans = inf
for a, b in enumerate(dp):
    if a < 0:
        continue
    ans = min(ans, max(a, Bsum - b))
print(ans)