#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;
 
struct Edge
{
    int x, y, c;
 
    Edge(int x = 0, int y = 0, int c = 0) : 
        x(x), y(y), c(c) {};
};
 
int subtask, n, q, ans = 0, cnt[4 * maxn + 10];
Edge edges[maxn + 10];
vector<ii> v;
ii query[maxn + 10];
 
int get_id(int x, int color)
{
    return lower_bound(v.begin(), v.end(), ii(x, color)) - v.begin();
}
int get(int id, int color)
{
    int x = edges[id].x;
    int y = edges[id].y;
    int quantity = ((cnt[get_id(x, color)] != 0) + (cnt[get_id(y, color)] != 0));
    if (quantity == 1)
        return 0;
    else if (quantity == 2)
        return -1;
    return 1;
}
 
int main()
{
    ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
    if (fopen("TREE-EDGE-COLOR-QUERIES.INP", "r"))
    {
        freopen("TREE-EDGE-COLOR-QUERIES.INP", "r", stdin);
        freopen("TREE-EDGE-COLOR-QUERIES.OUT", "w", stdout);
    }
 
    cin >> subtask;
    cin >> n;
    for (int i = 1; i < n; i++)
    {
        int x, y, c;
        cin >> x >> y >> c;
        edges[i] = Edge(x, y, c);
        v.push_back(ii(x, c));
        v.push_back(ii(y, c));
    }
 
    cin >> q;
    for (int j = 1; j <= q; j++)
    {
        int i, d;
        cin >> i >> d;
        int x = edges[i].x;
        int y = edges[i].y;
        v.push_back(ii(x, d));
        v.push_back(ii(y, d));
        query[j] = ii(i, d);
    }
    sort(v.begin(), v.end());
    v.resize(unique(v.begin(), v.end()) - v.begin());
    for (int i = 1; i < n; i++)
    {
        int x = edges[i].x;
        int y = edges[i].y;
        int color = edges[i].c;
        ans += get(i, color);
        cnt[get_id(x, color)]++;
        cnt[get_id(y, color)]++;
    }
    cout << ans << ' ';
    for (int i = 1; i <= q; i++)
    {
        int id = query[i].fi;
        int d = query[i].se;
        int x = edges[id].x;
        int y = edges[id].y;
        int c = edges[id].c;
        cnt[get_id(x, c)]--;
        cnt[get_id(y, c)]--;
        ans += -get(id, c) + get(id, d);
        cnt[get_id(x, d)]++;
        cnt[get_id(y, d)]++;
        cout << ans << ' ';
        edges[id].c = d;
    }
}
				I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZyAKI2RlZmluZSBlbCBjb3V0IDw8ICdcbicKI2RlZmluZSBpaSBwYWlyPGludCwgaW50PgojZGVmaW5lIGZpIGZpcnN0CiNkZWZpbmUgc2Ugc2Vjb25kCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heG4gPSAzZTU7CgpzdHJ1Y3QgRWRnZQp7CiAgICBpbnQgeCwgeSwgYzsKCiAgICBFZGdlKGludCB4ID0gMCwgaW50IHkgPSAwLCBpbnQgYyA9IDApIDogCiAgICAgICAgeCh4KSwgeSh5KSwgYyhjKSB7fTsKfTsKCmludCBzdWJ0YXNrLCBuLCBxLCBhbnMgPSAwLCBjbnRbNCAqIG1heG4gKyAxMF07CkVkZ2UgZWRnZXNbbWF4biArIDEwXTsKdmVjdG9yPGlpPiB2OwppaSBxdWVyeVttYXhuICsgMTBdOwoKaW50IGdldF9pZChpbnQgeCwgaW50IGNvbG9yKQp7CiAgICByZXR1cm4gbG93ZXJfYm91bmQodi5iZWdpbigpLCB2LmVuZCgpLCBpaSh4LCBjb2xvcikpIC0gdi5iZWdpbigpOwp9CmludCBnZXQoaW50IGlkLCBpbnQgY29sb3IpCnsKICAgIGludCB4ID0gZWRnZXNbaWRdLng7CiAgICBpbnQgeSA9IGVkZ2VzW2lkXS55OwogICAgaW50IHF1YW50aXR5ID0gKChjbnRbZ2V0X2lkKHgsIGNvbG9yKV0gIT0gMCkgKyAoY250W2dldF9pZCh5LCBjb2xvcildICE9IDApKTsKICAgIGlmIChxdWFudGl0eSA9PSAxKQogICAgICAgIHJldHVybiAwOwogICAgZWxzZSBpZiAocXVhbnRpdHkgPT0gMikKICAgICAgICByZXR1cm4gLTE7CiAgICByZXR1cm4gMTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgIGlmIChmb3BlbigiVFJFRS1FREdFLUNPTE9SLVFVRVJJRVMuSU5QIiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKCJUUkVFLUVER0UtQ09MT1ItUVVFUklFUy5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJUUkVFLUVER0UtQ09MT1ItUVVFUklFUy5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CgogICAgY2luID4+IHN1YnRhc2s7CiAgICBjaW4gPj4gbjsKICAgIGZvciAoaW50IGkgPSAxOyBpIDwgbjsgaSsrKQogICAgewogICAgICAgIGludCB4LCB5LCBjOwogICAgICAgIGNpbiA+PiB4ID4+IHkgPj4gYzsKICAgICAgICBlZGdlc1tpXSA9IEVkZ2UoeCwgeSwgYyk7CiAgICAgICAgdi5wdXNoX2JhY2soaWkoeCwgYykpOwogICAgICAgIHYucHVzaF9iYWNrKGlpKHksIGMpKTsKICAgIH0KCiAgICBjaW4gPj4gcTsKICAgIGZvciAoaW50IGogPSAxOyBqIDw9IHE7IGorKykKICAgIHsKICAgICAgICBpbnQgaSwgZDsKICAgICAgICBjaW4gPj4gaSA+PiBkOwogICAgICAgIGludCB4ID0gZWRnZXNbaV0ueDsKICAgICAgICBpbnQgeSA9IGVkZ2VzW2ldLnk7CiAgICAgICAgdi5wdXNoX2JhY2soaWkoeCwgZCkpOwogICAgICAgIHYucHVzaF9iYWNrKGlpKHksIGQpKTsKICAgICAgICBxdWVyeVtqXSA9IGlpKGksIGQpOwogICAgfQogICAgc29ydCh2LmJlZ2luKCksIHYuZW5kKCkpOwogICAgdi5yZXNpemUodW5pcXVlKHYuYmVnaW4oKSwgdi5lbmQoKSkgLSB2LmJlZ2luKCkpOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspCiAgICB7CiAgICAgICAgaW50IHggPSBlZGdlc1tpXS54OwogICAgICAgIGludCB5ID0gZWRnZXNbaV0ueTsKICAgICAgICBpbnQgY29sb3IgPSBlZGdlc1tpXS5jOwogICAgICAgIGFucyArPSBnZXQoaSwgY29sb3IpOwogICAgICAgIGNudFtnZXRfaWQoeCwgY29sb3IpXSsrOwogICAgICAgIGNudFtnZXRfaWQoeSwgY29sb3IpXSsrOwogICAgfQogICAgY291dCA8PCBhbnMgPDwgJyAnOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gcTsgaSsrKQogICAgewogICAgICAgIGludCBpZCA9IHF1ZXJ5W2ldLmZpOwogICAgICAgIGludCBkID0gcXVlcnlbaV0uc2U7CiAgICAgICAgaW50IHggPSBlZGdlc1tpZF0ueDsKICAgICAgICBpbnQgeSA9IGVkZ2VzW2lkXS55OwogICAgICAgIGludCBjID0gZWRnZXNbaWRdLmM7CiAgICAgICAgY250W2dldF9pZCh4LCBjKV0tLTsKICAgICAgICBjbnRbZ2V0X2lkKHksIGMpXS0tOwogICAgICAgIGFucyArPSAtZ2V0KGlkLCBjKSArIGdldChpZCwgZCk7CiAgICAgICAgY250W2dldF9pZCh4LCBkKV0rKzsKICAgICAgICBjbnRbZ2V0X2lkKHksIGQpXSsrOwogICAgICAgIGNvdXQgPDwgYW5zIDw8ICcgJzsKICAgICAgICBlZGdlc1tpZF0uYyA9IGQ7CiAgICB9Cn0=