#yuki710 n=int(raw_input()) dp=[float('inf') for i in xrange(100010)] dp[0]=0 s=0 for i in xrange(n): a,b=map(int,raw_input().split()) for j in xrange(s+1): dp[j]+=b s+=a for j in xrange(s,a-1,-1): dp[j]=min(dp[j],dp[j-a]-b) res=s for i in xrange(s+1): res=min(res,max(i,dp[i])) print res