#include #include #include using namespace std; using namespace atcoder; using mint = modint998244353; #define rep(i,n) for (int i = 0; i < (n); ++i) #define Inf32 1000000001 #define Inf64 4000000000000000001 int main(){ int n,m,w; cin>>n>>m>>w; vector a(n+m),b(n+m); rep(i,n)cin>>a[i]; rep(i,n)cin>>b[i]; rep(i,m){ cin>>a[i+n]; a[i+n]*=-1; } rep(i,m){ cin>>b[i+n]; b[i+n]*=-1; } vector dp(1<<(n+m),false); dp[0] = true; rep(i,1<<(n+m)){ if(dp[i]==false)continue; rep(j,n+m){ if((i>>j)&1)continue; int x = 0; rep(k,n+m){ if((i>>k)&1)x += a[k]; if(k==j)x += a[k]; } //cout<=0 && x<=w)dp[i|(1<>j)&1)v += b[j]; } ans = max(ans,v); } cout<