#include <bits/stdc++.h>
 
#define ll long long 
#define el cout << '\n'
#define ii pair<int, int>
#define fi first
#define se second
 
using namespace std;
 
const int maxn  = 3e5;
const int maxlog = 18;
 
int subtask, n, q, dist[maxn + 10], sz[maxn + 10], p[maxn + 10][maxlog + 5], tin[maxn + 10], tout[maxn + 10], timer = 0;
int par_centroid[maxn + 10];
ll cnt[maxn + 10], sum_dist[maxn + 10], sum_dist_par[maxn + 10];
bool check[maxn + 10], is_centroid[maxn + 10];
ll ans = 0;
vector<ii> adj[maxn + 10];
 
void build_sz(int top, int par)
{
    sz[top] = 1;
    for (ii pr : adj[top])
    {
        int next_top = pr.fi;
        if (next_top == par || is_centroid[next_top])
            continue;
        build_sz(next_top, top);
        sz[top] += sz[next_top];
    }
}
int find_centroid(int top, int par, int tree_sz)
{
    for (ii pr : adj[top])
    {
        int next_top = pr.fi;
        if (next_top == par || is_centroid[next_top])
            continue;
        if (2 * sz[next_top] > tree_sz)
            return find_centroid(next_top, top, tree_sz);
    }
    return top;
}
void build_centroid_tree(int top, int par = -1)
{
    build_sz(top, -1);
    int centroid = find_centroid(top, -1, sz[top]);
    is_centroid[centroid] = 1;
 
    if (par != -1)
    {
        // cout << par << ' ' << centroid, el;
        par_centroid[centroid] = par;
    }
 
    for (ii pr : adj[centroid])
    {
        int next_top = pr.fi;
        if (!is_centroid[next_top])
            build_centroid_tree(next_top, centroid);
    }
}
void dfs(int top, int par = 0)
{
    tin[top] = ++timer;
    p[top][0] = par;
    for (int i = 1; i <= maxlog; i++)
        p[top][i] = p[p[top][i - 1]][i - 1];
    for (ii pr : adj[top])
    {
        int next_top = pr.fi;
        int w = pr.se;
        if (next_top == par)
            continue;
        dist[next_top] = dist[top] + w;
        dfs(next_top, top);
    }
    tout[top] = timer;
}
bool is_ancestor(int x, int y)
{
    if (x == 0 || y == 0)
        return 1;
    return tin[x] <= tin[y] && tout[y] <= tout[x];
}
int get_lca(int x, int y)
{
    if (is_ancestor(x, y))
        return x;
    if (is_ancestor(y, x))
        return y;
    for (int i = maxlog; i >= 0; i--)
        if (!is_ancestor(p[x][i], y))
            x = p[x][i];
    return p[x][0];
}
int get_dist(int x, int y)
{
    return dist[x] + dist[y] - 2 * dist[get_lca(x, y)];
}
void update(int x, int mobius)
{
    int pre_par = 0;
    for (int u = x; u; u = par_centroid[u])
    {
        cnt[u] += mobius;
        sum_dist[u] += mobius * get_dist(u, x);
        if (pre_par)
            sum_dist_par[pre_par] += mobius * get_dist(u, x);
        pre_par = u;
        // cout << u << ' ' << x << ' ' << cnt[u] << ' ' << sum_dist[u], el;
    }
}
ll get(int x, int mobius)
{
    ll ans = 0;
    int pre_par = 0;
    for (int u = x; u; u = par_centroid[u])
    {
        // cout << pre_par << ' ' << cnt[u] << ' ' << cnt[pre_par] << ' ' << sum_dist[u] << ' ' << sum_dist_par[pre_par], el;
        ans += mobius * (1ll * get_dist(u, x) * (cnt[u] - cnt[pre_par]) + sum_dist[u] - sum_dist_par[pre_par]);
        pre_par = u;
    }
    return ans;
}
 
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    if (fopen("BUBBLEMPIRE.INP", "r"))
    {
        freopen("BUBBLEMPIRE.INP", "r", stdin);
        freopen("BUBBLEMPIRE.OUT", "w", stdout);
    }
 
    cin >> subtask;
    cin >> n >> q;
    for (int i = 1; i < n; i++)
    {
        int x, y;
        ll w;
        cin >> x >> y >> w;
        adj[x].push_back(ii(y, w));
        adj[y].push_back(ii(x, w));
    }
    dfs(1);
    build_centroid_tree(1);
    for (int i = 1; i <= n; i++)
    {
        char c;
        cin >> c;
        check[i] = c - '0';
        if (check[i] == 1)
        {
            ans += get(i, 1);
            update(i, 1);
        }
    }
    cout << ans << ' ';
    while (q--)
    {
        int x;
        cin >> x;
        if (check[x] == 0)
        {
            ans += get(x, 1);
            update(x, 1);
        }
        else
        {
            update(x, -1);
            ans += get(x, -1);
        }
        check[x] ^= 1;
        cout << ans << ' ';
    }
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBlbCBjb3V0IDw8ICdcbicKI2RlZmluZSBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heG4gID0gM2U1Owpjb25zdCBpbnQgbWF4bG9nID0gMTg7CgppbnQgc3VidGFzaywgbiwgcSwgZGlzdFttYXhuICsgMTBdLCBzelttYXhuICsgMTBdLCBwW21heG4gKyAxMF1bbWF4bG9nICsgNV0sIHRpblttYXhuICsgMTBdLCB0b3V0W21heG4gKyAxMF0sIHRpbWVyID0gMDsKaW50IHBhcl9jZW50cm9pZFttYXhuICsgMTBdOwpsbCBjbnRbbWF4biArIDEwXSwgc3VtX2Rpc3RbbWF4biArIDEwXSwgc3VtX2Rpc3RfcGFyW21heG4gKyAxMF07CmJvb2wgY2hlY2tbbWF4biArIDEwXSwgaXNfY2VudHJvaWRbbWF4biArIDEwXTsKbGwgYW5zID0gMDsKdmVjdG9yPGlpPiBhZGpbbWF4biArIDEwXTsKCnZvaWQgYnVpbGRfc3ooaW50IHRvcCwgaW50IHBhcikKewogICAgc3pbdG9wXSA9IDE7CiAgICBmb3IgKGlpIHByIDogYWRqW3RvcF0pCiAgICB7CiAgICAgICAgaW50IG5leHRfdG9wID0gcHIuZmk7CiAgICAgICAgaWYgKG5leHRfdG9wID09IHBhciB8fCBpc19jZW50cm9pZFtuZXh0X3RvcF0pCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGJ1aWxkX3N6KG5leHRfdG9wLCB0b3ApOwogICAgICAgIHN6W3RvcF0gKz0gc3pbbmV4dF90b3BdOwogICAgfQp9CmludCBmaW5kX2NlbnRyb2lkKGludCB0b3AsIGludCBwYXIsIGludCB0cmVlX3N6KQp7CiAgICBmb3IgKGlpIHByIDogYWRqW3RvcF0pCiAgICB7CiAgICAgICAgaW50IG5leHRfdG9wID0gcHIuZmk7CiAgICAgICAgaWYgKG5leHRfdG9wID09IHBhciB8fCBpc19jZW50cm9pZFtuZXh0X3RvcF0pCiAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgIGlmICgyICogc3pbbmV4dF90b3BdID4gdHJlZV9zeikKICAgICAgICAgICAgcmV0dXJuIGZpbmRfY2VudHJvaWQobmV4dF90b3AsIHRvcCwgdHJlZV9zeik7CiAgICB9CiAgICByZXR1cm4gdG9wOwp9CnZvaWQgYnVpbGRfY2VudHJvaWRfdHJlZShpbnQgdG9wLCBpbnQgcGFyID0gLTEpCnsKICAgIGJ1aWxkX3N6KHRvcCwgLTEpOwogICAgaW50IGNlbnRyb2lkID0gZmluZF9jZW50cm9pZCh0b3AsIC0xLCBzelt0b3BdKTsKICAgIGlzX2NlbnRyb2lkW2NlbnRyb2lkXSA9IDE7CgogICAgaWYgKHBhciAhPSAtMSkKICAgIHsKICAgICAgICAvLyBjb3V0IDw8IHBhciA8PCAnICcgPDwgY2VudHJvaWQsIGVsOwogICAgICAgIHBhcl9jZW50cm9pZFtjZW50cm9pZF0gPSBwYXI7CiAgICB9CgogICAgZm9yIChpaSBwciA6IGFkaltjZW50cm9pZF0pCiAgICB7CiAgICAgICAgaW50IG5leHRfdG9wID0gcHIuZmk7CiAgICAgICAgaWYgKCFpc19jZW50cm9pZFtuZXh0X3RvcF0pCiAgICAgICAgICAgIGJ1aWxkX2NlbnRyb2lkX3RyZWUobmV4dF90b3AsIGNlbnRyb2lkKTsKICAgIH0KfQp2b2lkIGRmcyhpbnQgdG9wLCBpbnQgcGFyID0gMCkKewogICAgdGluW3RvcF0gPSArK3RpbWVyOwogICAgcFt0b3BdWzBdID0gcGFyOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbWF4bG9nOyBpKyspCiAgICAgICAgcFt0b3BdW2ldID0gcFtwW3RvcF1baSAtIDFdXVtpIC0gMV07CiAgICBmb3IgKGlpIHByIDogYWRqW3RvcF0pCiAgICB7CiAgICAgICAgaW50IG5leHRfdG9wID0gcHIuZmk7CiAgICAgICAgaW50IHcgPSBwci5zZTsKICAgICAgICBpZiAobmV4dF90b3AgPT0gcGFyKQogICAgICAgICAgICBjb250aW51ZTsKICAgICAgICBkaXN0W25leHRfdG9wXSA9IGRpc3RbdG9wXSArIHc7CiAgICAgICAgZGZzKG5leHRfdG9wLCB0b3ApOwogICAgfQogICAgdG91dFt0b3BdID0gdGltZXI7Cn0KYm9vbCBpc19hbmNlc3RvcihpbnQgeCwgaW50IHkpCnsKICAgIGlmICh4ID09IDAgfHwgeSA9PSAwKQogICAgICAgIHJldHVybiAxOwogICAgcmV0dXJuIHRpblt4XSA8PSB0aW5beV0gJiYgdG91dFt5XSA8PSB0b3V0W3hdOwp9CmludCBnZXRfbGNhKGludCB4LCBpbnQgeSkKewogICAgaWYgKGlzX2FuY2VzdG9yKHgsIHkpKQogICAgICAgIHJldHVybiB4OwogICAgaWYgKGlzX2FuY2VzdG9yKHksIHgpKQogICAgICAgIHJldHVybiB5OwogICAgZm9yIChpbnQgaSA9IG1heGxvZzsgaSA+PSAwOyBpLS0pCiAgICAgICAgaWYgKCFpc19hbmNlc3RvcihwW3hdW2ldLCB5KSkKICAgICAgICAgICAgeCA9IHBbeF1baV07CiAgICByZXR1cm4gcFt4XVswXTsKfQppbnQgZ2V0X2Rpc3QoaW50IHgsIGludCB5KQp7CiAgICByZXR1cm4gZGlzdFt4XSArIGRpc3RbeV0gLSAyICogZGlzdFtnZXRfbGNhKHgsIHkpXTsKfQp2b2lkIHVwZGF0ZShpbnQgeCwgaW50IG1vYml1cykKewogICAgaW50IHByZV9wYXIgPSAwOwogICAgZm9yIChpbnQgdSA9IHg7IHU7IHUgPSBwYXJfY2VudHJvaWRbdV0pCiAgICB7CiAgICAgICAgY250W3VdICs9IG1vYml1czsKICAgICAgICBzdW1fZGlzdFt1XSArPSBtb2JpdXMgKiBnZXRfZGlzdCh1LCB4KTsKICAgICAgICBpZiAocHJlX3BhcikKICAgICAgICAgICAgc3VtX2Rpc3RfcGFyW3ByZV9wYXJdICs9IG1vYml1cyAqIGdldF9kaXN0KHUsIHgpOwogICAgICAgIHByZV9wYXIgPSB1OwogICAgICAgIC8vIGNvdXQgPDwgdSA8PCAnICcgPDwgeCA8PCAnICcgPDwgY250W3VdIDw8ICcgJyA8PCBzdW1fZGlzdFt1XSwgZWw7CiAgICB9Cn0KbGwgZ2V0KGludCB4LCBpbnQgbW9iaXVzKQp7CiAgICBsbCBhbnMgPSAwOwogICAgaW50IHByZV9wYXIgPSAwOwogICAgZm9yIChpbnQgdSA9IHg7IHU7IHUgPSBwYXJfY2VudHJvaWRbdV0pCiAgICB7CiAgICAgICAgLy8gY291dCA8PCBwcmVfcGFyIDw8ICcgJyA8PCBjbnRbdV0gPDwgJyAnIDw8IGNudFtwcmVfcGFyXSA8PCAnICcgPDwgc3VtX2Rpc3RbdV0gPDwgJyAnIDw8IHN1bV9kaXN0X3BhcltwcmVfcGFyXSwgZWw7CiAgICAgICAgYW5zICs9IG1vYml1cyAqICgxbGwgKiBnZXRfZGlzdCh1LCB4KSAqIChjbnRbdV0gLSBjbnRbcHJlX3Bhcl0pICsgc3VtX2Rpc3RbdV0gLSBzdW1fZGlzdF9wYXJbcHJlX3Bhcl0pOwogICAgICAgIHByZV9wYXIgPSB1OwogICAgfQogICAgcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiQlVCQkxFTVBJUkUuSU5QIiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKCJCVUJCTEVNUElSRS5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJCVUJCTEVNUElSRS5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IHN1YnRhc2s7CiAgICBjaW4gPj4gbiA+PiBxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaW50IHgsIHk7CiAgICAgICAgbGwgdzsKICAgICAgICBjaW4gPj4geCA+PiB5ID4+IHc7CiAgICAgICAgYWRqW3hdLnB1c2hfYmFjayhpaSh5LCB3KSk7CiAgICAgICAgYWRqW3ldLnB1c2hfYmFjayhpaSh4LCB3KSk7CiAgICB9CiAgICBkZnMoMSk7CiAgICBidWlsZF9jZW50cm9pZF90cmVlKDEpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKQogICAgewogICAgICAgIGNoYXIgYzsKICAgICAgICBjaW4gPj4gYzsKICAgICAgICBjaGVja1tpXSA9IGMgLSAnMCc7CiAgICAgICAgaWYgKGNoZWNrW2ldID09IDEpCiAgICAgICAgewogICAgICAgICAgICBhbnMgKz0gZ2V0KGksIDEpOwogICAgICAgICAgICB1cGRhdGUoaSwgMSk7CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBhbnMgPDwgJyAnOwogICAgd2hpbGUgKHEtLSkKICAgIHsKICAgICAgICBpbnQgeDsKICAgICAgICBjaW4gPj4geDsKICAgICAgICBpZiAoY2hlY2tbeF0gPT0gMCkKICAgICAgICB7CiAgICAgICAgICAgIGFucyArPSBnZXQoeCwgMSk7CiAgICAgICAgICAgIHVwZGF0ZSh4LCAxKTsKICAgICAgICB9CiAgICAgICAgZWxzZQogICAgICAgIHsKICAgICAgICAgICAgdXBkYXRlKHgsIC0xKTsKICAgICAgICAgICAgYW5zICs9IGdldCh4LCAtMSk7CiAgICAgICAgfQogICAgICAgIGNoZWNrW3hdIF49IDE7CiAgICAgICAgY291dCA8PCBhbnMgPDwgJyAnOwogICAgfQp9