#include <bits/stdc++.h>

using namespace std;

typedef pair<int, int> PII;

vector<PII> E[100010];
int col[100010];
int   G[100010];
int  fa[100010];
int dep[100010];
int vis[100010];
int cnt[100010];
int son[100010];
int top[100010];
int idx[100010];
int rev[100010];
int tot;

void dfs(int u)
{
	cnt[u] = 1;
	son[u] = 0;
	for (int i = 0; i < E[u].size(); i++) {
		int v = E[u][i].first;
		if (v == fa[u]) continue;
		fa[v] = u;
		dep[v] = dep[u] + 1;
		G[v] = G[u] + E[u][i].second;
		dfs(v);
		if (cnt[v] > cnt[son[u]]) son[u] = v;
		cnt[u] += cnt[v];
	}
}

void build(int u, int root)
{
	idx[u] = ++tot;
	rev[tot] = u;
	top[u] = root;
	if (son[u]) build(son[u], root);
	for (int i = 0; i < E[u].size(); i++) {
		int v = E[u][i].first;
		if (v != son[u] && v != fa[u]) build(v, v);
	}
}

int find(int u, int v)
{
	int p = top[u];
	int q = top[v];
	while (p != q) {
		if (dep[p] < dep[q]) {
			swap(p, q);
			swap(u, v);
		}
		u = fa[p];
		p = top[u];
	}
	if (dep[u] > dep[v]) swap(u, v);
	return u;
}

set<int> S;

int get(int u)
{
	if (S.empty()) return 0;
	auto it = S.upper_bound(idx[u]);
	int x, y;
	if (it == S.begin() || it == S.end()) {
		x = rev[*S.begin()];
		y = rev[*S.rbegin()];
	}
	else {
		x = rev[*it];
		it--;
		y = rev[*it];
	}
	return G[u] - G[find(u, x)] - G[find(u, y)] + G[find(x, y)];
}

int main()
{
	int T;
	scanf("%d", &T);
	for (int cas = 1; cas <= T; cas++) {
		printf("Case #%d:\n", cas);
		int n, m;
		scanf("%d%d", &n, &m);
		for (int i = 1; i <= n; i++) {
			vis[i] = 0;
			E[i].clear();
		}
		for (int i = 1; i < n; i++) {
			int u, v, w;
			scanf("%d%d%d", &u, &v, &w);
			E[u].push_back(PII(v, w));
			E[v].push_back(PII(u, w));
		}

		dfs(1);
		tot = 0;
		build(1, 1);
		//for (int i = 1; i <= n; i++) printf("%d ", G[i]); puts("");

		S.clear();
		int ans = 0;
		while (m--) {
			int opt, u;
			scanf("%d%d", &opt, &u);
			if (opt == 1 && !S.count(idx[u])) {
				ans += get(u);
				S.insert(idx[u]);
			}
			if (opt == 2 &&  S.count(idx[u])) {
				S.erase(idx[u]);
				ans -= get(u);
			}
			printf("%d\n", ans);
		}
	}
	return 0;
}

