N = int(input()) VW = [list(map(int, input().split())) for _ in range(N)] V = int(input()) DP = [0]*(100010) j=1 for v,w in VW: for i in reversed(range(1000*j+10)): if DP[i]>0: DP[i+w]=max(DP[i+w],DP[i]+v) DP[w]=max(DP[w],v) j+=1 for i in range(1,100010): if DP[i]