#yuki_527 n=int(raw_input()) v=[] w=[] for i in xrange(n): v1,w1=map(int,raw_input().split()) v.append(v1) w.append(w1) V=int(raw_input()) dp=[[0 for i in xrange(101010)] for j in xrange(n+1)] for i in xrange(n): for j in xrange(100002): dp[i+1][j]=max(dp[i+1][j],dp[i][j]) dp[i+1][j+w[i]]=max(dp[i+1][j+w[i]],dp[i][j]+v[i]) mn=float('inf') mx=-1 for i in xrange(1,100002): if dp[n][i]==V: mn=min(mn,i) mx=max(mx,i) print mn if mx==100001: print 'inf' else: print mx