N = int(input()) N2 = 10 ** 3 * N + 1 dp = [N2] * N2 dp[0] = 0 for _ in range(N): a,b = map(int,input().split()) dp2 = [N2] * N2 for i in reversed(range(N2 - a)): dp2[i+a] = min(dp2[i+a],dp[i]) dp2[i] = min(dp2[i],dp[i]+b) dp = dp2 ans = N2 for i in range(N2): ans = min(ans,max(i,dp[i])) print(ans)