N,M,W = map(int,input().split()) A = list(map(int,input().split())) B = list(map(int,input().split())) C = list(map(int,input().split())) D = list(map(int,input().split())) C = [-C[i] for i in range(M)] D = [-D[i] for i in range(M)] A = A+C B = B+D dp = [False for _ in range(1<<(N+M))] dp[0] = True for mask in range(1,1<<(N+M)): for k in range(N+M): if ((mask>>k) & 1) and dp[mask^(1<>j) & 1: w += A[j] if 0<=w<=W: dp[mask] = True ans = 0 for mask in range(1<>k) & 1: v += B[k] ans = max(ans,v) print(ans)