# include using namespace std; #define rep(i, n) for (int i = 0; i < (int)(n); i++) #define repr(i, n) for (int i = (n -1); i != -1; i--) constexpr long long inf = LLONG_MAX; int main() { int n, d, k; cin >> n >> d >> k; vector a(n), c(n); rep(i, n) cin >> a[i]; rep(i, n) cin >> c[i]; vector> dp(d + 1, vector(k + 1, -inf)); dp[0][0] = 0; rep(i, n) { repr(j, d) { repr(l, k + 1) { if (dp[j][l] != -inf) if (dp[j + 1][min(k, l + c[i])] < dp[j][l] + a[i]) dp[j + 1][min(k, l + c[i])] = dp[j][l] + a[i]; } } } long long ans = dp[d][k]; if (ans == -inf) { cout << "No" << endl; return 0; } cout << ans << endl; }