n = int(input()) p = [tuple(map(int, input().split())) for _ in range(n)] maxt = 10**5 dp = [float('inf')] * (maxt+1) dp[0] = 0 for i in range(n): ai, bi = p[i] dp2 = dp[:] for i in range(maxt-1000+1): dp2[i] = dp[i] + bi for i in range(maxt-1000+1): dp2[i+ai] = min(dp2[i+ai], dp[i]) dp = dp2 ans = float('inf') for i in range(maxt+1): ans = min(ans, max(i,dp[i])) print(ans)