N,D,K = map(int,input().split()) A = [0]+list(map(int,input().split())) C = [0]+list(map(int,input().split())) INFTY = 10**12 dp = [[[-INFTY for _ in range(K+1)] for _ in range(D+1)] for _ in range(2)] for k in range(K+1): if C[1]>=k: dp[1][1][k] = A[1] for i in range(2,N+1): for j in range(1,D+1): if j>i:break for k in range(K+1): if j=C[i]: dp[i%2][j][k] = max(dp[i%2][j][k],dp[(i-1)%2][j-1][k-C[i]]+A[i]) if dp[N%2][D][K]<=-5*10**11-10: print("No") else: print(dp[N%2][D][K])