#include<iostream>
#include<cstdio>
using namespace std;
#define maxn 1030
int n,k,tot_money,ans;
int f[maxn],cost[maxn],delicious[maxn],num[maxn];
bool chose[maxn];
int main() {
double Money;
scanf("%d%d%lf",&n,&k,&Money);
tot_money=(int)(Money*10.0);
for(int i=1;i<=n;i++) {
scanf("%lf",&Money);
cost[i]=(int)(Money*10.0);
}
for(int i=1;i<=n;i++)
scanf("%d",&delicious[i]);
for(int i=1;i<=n;i++) {
int Ser;
scanf("%d",&Ser);
num[Ser]=i;
}
for(int i=1;i<=k;i++) {
int Must_choice;
scanf("%d",&Must_choice);
if (chose[Must_choice]==false) {
int T=num[Must_choice];
tot_money-=cost[T];
ans+=delicious[T];
chose[Must_choice]=true;
}
}
for(int i=1;i<=100;i++) {
int T=num[i];
if(!chose[i]&&T) {
for(int j=tot_money;j>=cost[T];j--) {
f[j]=max(f[j],f[j-cost[T]]+delicious[T]);
}
}
}
printf("%d",ans+f[tot_money]);
return 0;
}