N=gets.to_i a=[] b=[] s=0 N.times{|i| a[i],b[i]=gets.split.map &:to_i s+=b[i] } d=[0]*(s+1) N.times{|i| s.downto(a[i]){|j| d[j]=[d[j],d[j-a[i]]+b[i]].max } } i=-1 p d.map{|d|[i+=1,s-d].max}.min