N=int(input()) inf=float("inf") DP=[-inf]*(1000*N+1) DP[0]=0 for _ in range(N): v,w=map(int,input().split()) for x in range(1000*N,w-1,-1): DP[x]=max(DP[x],DP[x-w]+v) for x in range(1,1000*N+1): DP[x]=max(DP[x],DP[x-1]) V=int(input()) T=[x for x in range(1,1000*N+1) if DP[x]==V] print(min(T)) print(max(T) if max(DP)!=V else "inf")