#include <bits/stdc++.h>
using namespace std;

#define ios ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0);
#define ll long long
#define ull unsigned long long
#define inf INT_MAX
#define llinf LLONG_MAX
#define mt make_tuple
#define mp make_pair
#define parll pair<ll,ll>
#define parii pair<int,int>
#define frs first
#define sec second
#define neparno(x) (x&1)
#define parno(x) (!neparno(x))
#define lowbit(x) (x&-x)
#define nzd __gcd
#define nzs(e1,e2) (e1/nzd(e1,e2))*e2
#define all(V) V.begin(),V.end()
#define fill(V,v) fill(all(V),v)
#define l_b(BRL,brl) lower_bound( BRL.begin(), BRL.end(), brl )-BRL.begin()-1
#define u_b(BRU,bru) upper_bound( BRU.begin(), BRU.end(), bru )-BRU.begin()
#define mxn 200004

struct grana
{
    ll v;
    ll l;
    ll d;
};

ll n,q,m,a,b,A[mxn],P[mxn],suma,posl;
vector <grana> G[mxn];
vector <bool> V(mxn,false);
vector <ll> R;

void DFS1( ll i )
{
    V[i] = true;
    P[i] += A[i];
    for ( ll j = 0; j < G[i].size(); j++ )
    {
        ll next = G[i][j].v;
        if ( !V[next] )
        {
            DFS1(next);
            P[i] += P[next];
            G[i][j].d = P[next];
            G[i][j].l = suma-G[i][j].d;
        }
    }
}

void DFS2( ll i )
{
    V[i] = true;
    posl = i;
    for ( ll j = 0; j < G[i].size(); j++ )
    {
        ll next = G[i][j].v;
        ll l = G[i][j].l; ll d = G[i][j].d;
        if ( !V[next] && (d > l || (d == l && next < i)) )
        {
            DFS2(next);
        }
    }
}

void Usmeravanje()
{
    DFS1(1);
    fill(V,false);
    DFS2(1);
    cout << posl;
}

bool cmp( grana a, grana b )
{
    return (a.v>b.v);
}

int main()
{
    ios;

    cin >> n;
    ll u,v;
    for ( ll i = 1; i < n; i++ )
    {
        cin >> u >> v;
        G[u].push_back({v,0,0});
        G[v].push_back({u,0,0});
    }
    for ( ll i = 1; i <= n; i++ )
    {
        sort(all(G[i]),cmp);
    }

    for ( ll i = 1; i <= n; i++ )
    {
        cin >> A[i];
        suma += A[i];
    }
    cin >> q;
    if ( q == 0 )
    {
        Usmeravanje();
        return 0;
    }

    return 0;
}