n, d, k = map(int, input().split()) a = list(map(int, input().split())) c = list(map(int, input().split())) dp = [[-10**18]*(k+1) for _ in range(d+1)] dp[0][0] = 0 for i in range(n): ai, ci = a[i], c[i] for j in reversed(range(d)): for l in reversed(range(k+1)): dp[j+1][min(k, l+ci)] = max(dp[j+1][min(k, l+ci)], dp[j][l] + ai) if dp[-1][-1] < -10**16: print('No') else: print(dp[-1][-1])