#include<iostream>
using namespace std;
int v[101]={0},c[101]={0},w[101]={0},f[10011]={0},n,m,k,x,mx=0,maxn=0,visi[101]={0};
double a,b;
int main()
{
cin>>n>>m>>b;
x=(int)(b*10);
for(int i=1;i<=n;i++)
cin>>a,v[i]=(int)(a*10);
for(int i=1;i<=n;i++)
cin>>w[i];
for(int i=1;i<=n;i++)
{
cin>>k;
visi[k]++;
if(visi[k]>1) v[i]=w[i]=0;
else c[k]=i;
}
for(int i=1;i<=m;i++)
{
cin>>k;
mx+=w[c[k]];
x-=v[c[k]];
w[c[k]]=v[c[k]]=0;
}
for(int i=1;i<=n;i++)
for(int j=x;j>=v[i];j--)
{
f[j]=max(f[j],f[j-v[i]]+w[i]);
maxn=max(maxn,f[j]);
}
cout<<maxn+mx;
}