inf = (1<<63)-1 mod = 998244353 n,d,K = mp() a = lmp() c = lmp() dp = [[-inf]*(K+1) for i in range(d+1)] dp[0][0] = 0 for i in range(n): nxt = [[-inf]*(K+1) for _ in range(d+1)] for j in range(d): for k in range(K+1): if k+c[i] < K: nxt[j+1][k+c[i]] = max(nxt[j+1][k+c[i]], dp[j][k]+a[i]) else: nxt[j+1][K] = max(nxt[j+1][K], dp[j][k]+a[i]) nxt[j][k] = max(nxt[j][k],dp[j][k]) dp = nxt ans = dp[d][K] if ans < -10**18: print("No") else: print(ans)