#include using namespace std; using ll = int64_t; int main() { std::ios::sync_with_stdio(false); std::cin.tie(nullptr); int N, D, K; cin >> N >> D >> K; vector A(N), C(N); for (int i = 0; i < N; i++) cin >> A[i]; for (int i = 0; i < N; i++) cin >> C[i]; vector> dp(D + 1, vector(K + 1, -1e18)); dp[0][0] = 0; for(int i = 0; i < N; i++) { vector> ndp = dp; for(int j = 0; j + 1 <= D; j++) { for(int k = 0; k <= K; k++) if(dp[j][k] != (ll)-1e18){ ll &now = ndp[j + 1][min(k + C[i], K)]; now = max(now, dp[j][k] + A[i]); } } dp.swap(ndp); } cout << (dp[D][K] == (ll)-1e18 ? "No" : to_string(dp[D][K])) << '\n'; }