from collections import * from itertools import * from functools import * from heapq import * import sys,math input = sys.stdin.readline N = int(input()) AB = [tuple(map(int,input().split())) for _ in range(N)] ide_ele = -float('inf') M = N*max(a for a,b in AB) Sb = sum(b for a,b in AB) val = [ide_ele]*(M+1) val[0] = 0 for a,b in AB: for j in range(M,a-1,-1): val[j] = max(val[j],val[j-a]+b) ans = min(max(a,Sb - val[a]) for a in range(M+1)) print(ans)