n=int(input()) val,wgt = [0]*n,[0]*n max_w = 0 for i in range(n): v,w = map(int,input().split()) val[i],wgt[i] = v,w max_w += w res = int(input()) dp = [0]*(max_w+1) for i in range(n): v,w = val[i],wgt[i] for j in range(max_w,w-1,-1): dp[j] = max(dp[j],dp[j-w]+v) mincap,maxcap = 0,0 for i in range(1,max_w+1): if dp[i]==res: mincap = i while i<=max_w and dp[i]==res: i += 1 if i>max_w: maxcap = "inf" else: maxcap = i-1 break print(mincap) print(maxcap)