INF = float("inf") n, d, k = map(int, input().split()) al = list(map(int, input().split())) cl = list(map(int, input().split())) # dp[i][j][k]: i個目の問題まででj個で美しさbとなるときの最大値 dp = [[[-INF] * (k + 1) for _ in range(d + 1)] for _ in range(n + 1)] dp[0][0][0] = 0 for i in range(1, n + 1): a = al[i - 1] c = cl[i - 1] for j in range(d + 1): for b in range(k + 1): dp[i][j][b] = max(dp[i - 1][j][b], dp[i - 1][j - 1][max(0, b - c)] + a) ans = dp[n][d][k] print("No" if ans == -INF else ans)