n, m, w = [int(x) for x in input().split()] a = list(map(int, input().split())) b = [1 for _ in range(len(a))] c = list(map(int, input().split())) d = list(map(int, input().split())) def knapsack(wt, val, W, n): if n == 0 or W == 0: return 0 if t[n][W] != -1: return t[n][W] if wt[n-1] <= W: t[n][W] = max( val[n-1] + knapsack( wt, val, W-wt[n-1], n-1), knapsack(wt, val, W, n-1)) return t[n][W] elif wt[n-1] > W: t[n][W] = knapsack(wt, val, W, n-1) return t[n][W] value = a + d weight = b + c n += m t = [[-1 for i in range(w + 1)] for j in range(n + 1)] print(knapsack(weight, value, w, n))