#include using namespace std; int main() { 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, -100000000000000000)); dp[0][0] = 0; for (int i = 0; i < N; ++i) { for (int j = D - 1; j >= 0; --j) { for (int k = K; k >= 0; --k) { if (dp[j][k] != -100000000000000000) { if (dp[j + 1][min(K, k + C[i])] < dp[j][k] + A[i]) dp[j + 1][min(K, k + C[i])] = dp[j][k] + A[i]; } } } } long long ans = dp[D][K]; if (ans == -100000000000000000) cout << "No" << endl; else cout << ans << endl; return 0; }