#include <iostream>
#include <vector>
#include <algorithm>
#include <map>
#include <sstream>
#include <string>
#include <complex>
#include <cstdio>
using namespace std;

pair<int,int> a[15];

int main(){
	int n,m,K;
	cin >> n >> m >> K;
	long long sum = 0;
	for(int i = 0 ; i < n ; i++) cin >> a[i].first;
	for(int i = 0 ; i < n ; i++) cin >> a[i].second;
	long long w = 0;
	for(int k = 0 ; k < (1<<n) ; k++){
		if( __builtin_popcount(k) > K ) continue;
		vector<int> v;

		for(int i = 0 ; i < n ; i++){
			if( k >> i & 1 )
				for(int j = 0 ; j < a[i].second ; j++)
					v.push_back(a[i].first);
		}
		sort(v.rbegin(),v.rend());

		long long s = m - min<int>(v.size(),m);
		for(int i = 0 ; i < min<int>(v.size(),m) ; i++){
			//cout << v[i] << endl;
			s += v[i];
		}
		w = max(w,s);

	}
	cout << w << endl;
}