N = int(input()) l = [] C = 0 for _ in range(N): v,w = map(int,input().split()) l.append((v,w)) C += w dp = [0] * (C + 1) V = int(input()) for v,w in l: nx = dp.copy() for j in range(C+1): if j + w <= C: if nx[j + w] < dp[j] + v: nx[j + w] = dp[j] + v dp = nx m = C + 5 M = 0 for i in range(1,C+1): if dp[i] == V: if i < m: m = i if i > M: M = i if M == C: M = "inf" print(m) print(M)