#include<bits/stdc++.h>
#define mp make_pair
#define pb push_back
using namespace std;
vector <int> adj[200010];
struct costy
{
int wt,val;
};
int g=1;
int lo=0;
int h=0;
int K[605][12003];
int ma=0;
bool visited[1005];
int W;
int ar[1000]={0};
void dfs(costy lol[],int s)
{
visited[s]=true;
for(int i = 0;i < adj[s].size();++i)
{
if(visited[adj[s][i]] == false)
{
lo++;
ar[lo]=adj[s][i];
g++;
for (int w = 1; w <= W; w++)
{
if (lol[ar[lo]].wt <= w)
K[g][w] = max(lol[ar[lo]].val + K[g-1][w-lol[ar[lo]].wt], K[g-1][w]);
else
K[g][w] = K[g-1][w];
}
dfs(lol,adj[s][i]);
ma=max(ma,K[g][W]);
g--;
lo--;
}
}
}
int main()
{
int n,m,i;
cin>>n;
for(i=0;i<=n;i++)
visited[i]=false;
int k=n-1;
while(k--)
{
int x,y;
cin>>x>>y;
adj[x-1].pb(y-1);
adj[y-1].pb(x-1);
}
costy lol[n+5];
for(i=0;i<n;i++)
{
cin>>lol[i].val;
}
for(i=0;i<n;i++)
{
cin>>lol[i].wt;
}
cin>>W;
for(i=0;i<=W;i++)
K[0][i]=0;
for(i=0;i<=n;i++)
K[i][0]=0;
for (int w = 1; w <= W; w++)
{
if (lol[0].wt <= w)
K[g][w] = max(lol[0].val + K[g-1][w-lol[0].wt], K[g-1][w]);
else
K[g][w] = K[g-1][w];
}
ma=max(ma,K[g][W]);
dfs(lol,0);
cout<<ma;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIAp2ZWN0b3IgPGludD4gYWRqWzIwMDAxMF07CiAKc3RydWN0IGNvc3R5CnsKICAgIGludCB3dCx2YWw7Cn07CmludCBnPTE7CmludCBsbz0wOwppbnQgaD0wOwppbnQgS1s2MDVdWzEyMDAzXTsKaW50IG1hPTA7CmJvb2wgdmlzaXRlZFsxMDA1XTsKaW50IFc7CmludCBhclsxMDAwXT17MH07CiAKdm9pZCBkZnMoY29zdHkgbG9sW10saW50IHMpCnsKICAgIHZpc2l0ZWRbc109dHJ1ZTsKIAogICAgZm9yKGludCBpID0gMDtpIDwgYWRqW3NdLnNpemUoKTsrK2kpCiAgICB7CiAKICAgICAgICBpZih2aXNpdGVkW2FkaltzXVtpXV0gPT0gZmFsc2UpCiAgICAgICAgewogCiAgICAgICAgICAgIGxvKys7CiAgICAgICAgICAgIGFyW2xvXT1hZGpbc11baV07CiAgICAgICAgICAgIGcrKzsKICAgICAgICAgICAgZm9yIChpbnQgdyA9IDE7IHcgPD0gVzsgdysrKQogICAgICAgICAgICB7CiAKICAgICAgICAgICAgICAgaWYgKGxvbFthcltsb11dLnd0IDw9IHcpCiAgICAgICAgICAgICAgICAgICAgIEtbZ11bd10gPSBtYXgobG9sW2FyW2xvXV0udmFsICsgS1tnLTFdW3ctbG9sW2FyW2xvXV0ud3RdLCAgS1tnLTFdW3ddKTsKICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgICBLW2ddW3ddID0gS1tnLTFdW3ddOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGRmcyhsb2wsYWRqW3NdW2ldKTsKICAgICAgICAgICAgbWE9bWF4KG1hLEtbZ11bV10pOwogICAgICAgICAgICBnLS07CiAgICAgICAgICAgIGxvLS07CiAKICAgICAgICB9CiAgICB9Cn0KIAppbnQgbWFpbigpCnsKICAgIGludCBuLG0saTsKICAgIGNpbj4+bjsKICAgIGZvcihpPTA7aTw9bjtpKyspCiAgICAgICAgdmlzaXRlZFtpXT1mYWxzZTsKIAogICAgaW50IGs9bi0xOwogICAgd2hpbGUoay0tKQogICAgewogICAgICAgIGludCB4LHk7CiAgICAgICAgY2luPj54Pj55OwogICAgICAgIGFkalt4LTFdLnBiKHktMSk7CiAgICAgICAgYWRqW3ktMV0ucGIoeC0xKTsKIAogICAgfQogICAgY29zdHkgbG9sW24rNV07CiAgICBmb3IoaT0wO2k8bjtpKyspCiAgICB7CiAgICAgICAgY2luPj5sb2xbaV0udmFsOwogICAgfQogICAgZm9yKGk9MDtpPG47aSsrKQogICAgewogICAgICAgIGNpbj4+bG9sW2ldLnd0OwogICAgfQogICAgY2luPj5XOwogICAgZm9yKGk9MDtpPD1XO2krKykKICAgICAgICBLWzBdW2ldPTA7CiAgICBmb3IoaT0wO2k8PW47aSsrKQogICAgICAgIEtbaV1bMF09MDsKIAogICAgZm9yIChpbnQgdyA9IDE7IHcgPD0gVzsgdysrKQogICAgewogICAgICAgaWYgKGxvbFswXS53dCA8PSB3KQogICAgICAgICAgICAgS1tnXVt3XSA9IG1heChsb2xbMF0udmFsICsgS1tnLTFdW3ctbG9sWzBdLnd0XSwgIEtbZy0xXVt3XSk7CiAgICAgICBlbHNlCiAgICAgICAgICAgICBLW2ddW3ddID0gS1tnLTFdW3ddOwogICAgfQogICAgbWE9bWF4KG1hLEtbZ11bV10pOwogICAgZGZzKGxvbCwwKTsKICAgIGNvdXQ8PG1hOwogICAgcmV0dXJuIDA7Cn0KIA==