#include <bits/stdc++.h>
using namespace std;
using ll = long long;
const int oo = 2e9;
const int N = 1e5+5;
const int LG = 18;
int n, q;
vector<pair<int, int>> adj[N];
bool removed[N];
int bit[N];
int tin[N], tout[N], timer = 0;
int depth[N], up[N][LG], min_w[N][LG];
void update(int p, int v) {
for (; p <= n; p += p & -p) bit[p] += v;
}
int query(int p) {
int s = 0;
for (; p > 0; p -= p & -p) s += bit[p];
return s;
}
int get(int u) {
return query(tin[u]);
}
void dfs(int u, int p, int w) {
tin[u] = ++timer;
up[u][0] = p;
min_w[u][0] = w;
for (int i = 1; i < LG; i++) {
up[u][i] = up[up[u][i - 1]][i - 1];
min_w[u][i] = min(min_w[u][i - 1], min_w[up[u][i - 1]][i - 1]);
}
for (auto [v, c] : adj[u]) {
if (v == p) continue;
depth[v] = depth[u] + 1;
dfs(v, u, c);
}
tout[u] = timer;
}
pair<int, int> get_lca(int u, int v) {
if (depth[u] < depth[v]) swap(u, v);
int ans = oo;
for (int i = LG - 1; i >= 0; i--)
if (depth[u] - (1 << i) >= depth[v]) {
ans = min(ans, min_w[u][i]);
u = up[u][i];
}
if (u == v) return {u, ans};
for (int i = LG - 1; i >= 0; i--)
if (up[u][i] != up[v][i]) {
ans = min({ans, min_w[u][i], min_w[v][i]});
u = up[u][i];
v = up[v][i];
}
ans = min({ans, min_w[u][0], min_w[v][0]});
return {up[u][0], ans};
}
void solve() {
cin >> n >> q;
for (int i = 0; i < n - 1; i++) {
int u, v, w; cin >> u >> v >> w;
adj[u].emplace_back(v, w);
adj[v].emplace_back(u, w);
}
for (int i = 0; i < LG; i++) min_w[0][i] = oo;
dfs(1, 0, oo);
while (q--) {
int type; cin >> type;
if (type == 1) {
int u, v; cin >> u >> v;
if (u == v) {
cout << "0\n";
continue;
}
auto [lca, ans] = get_lca(u, v);
int cnt = get(u) + get(v) - 2 * get(lca) + removed[lca];
cout << (cnt > 0 ? -1 : ans) << '\n';
} else if (type == 2) {
int u; cin >> u;
if (!removed[u]) {
removed[u] = 1;
update(tin[u], 1);
update(tout[u] + 1, -1);
}
}
}
}
int main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define TASK "BACKUP"
if (fopen(TASK".INP", "r")) {
freopen(TASK".INP", "r", stdin);
freopen(TASK".OUT", "w", stdout);
}
int tests = 1; // cin >> tests;
while (tests--) solve();
#ifdef LOCAL
cerr << "\nTime elapsed: " << clock() << " ms.\n";
#endif
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp1c2luZyBsbCA9IGxvbmcgbG9uZzsKCmNvbnN0IGludCBvbyA9IDJlOTsKY29uc3QgaW50IE4gPSAxZTUrNTsKY29uc3QgaW50IExHID0gMTg7CgppbnQgbiwgcTsKdmVjdG9yPHBhaXI8aW50LCBpbnQ+PiBhZGpbTl07CmJvb2wgcmVtb3ZlZFtOXTsKaW50IGJpdFtOXTsKaW50IHRpbltOXSwgdG91dFtOXSwgdGltZXIgPSAwOwppbnQgZGVwdGhbTl0sIHVwW05dW0xHXSwgbWluX3dbTl1bTEddOwoKdm9pZCB1cGRhdGUoaW50IHAsIGludCB2KSB7CiAgICBmb3IgKDsgcCA8PSBuOyBwICs9IHAgJiAtcCkgYml0W3BdICs9IHY7Cn0KCmludCBxdWVyeShpbnQgcCkgewogICAgaW50IHMgPSAwOwogICAgZm9yICg7IHAgPiAwOyBwIC09IHAgJiAtcCkgcyArPSBiaXRbcF07CiAgICByZXR1cm4gczsKfQoKaW50IGdldChpbnQgdSkgewogICAgcmV0dXJuIHF1ZXJ5KHRpblt1XSk7Cn0KCnZvaWQgZGZzKGludCB1LCBpbnQgcCwgaW50IHcpIHsKICAgIHRpblt1XSA9ICsrdGltZXI7CiAgICB1cFt1XVswXSA9IHA7CiAgICBtaW5fd1t1XVswXSA9IHc7CiAgICBmb3IgKGludCBpID0gMTsgaSA8IExHOyBpKyspIHsKICAgICAgICB1cFt1XVtpXSA9IHVwW3VwW3VdW2kgLSAxXV1baSAtIDFdOwogICAgICAgIG1pbl93W3VdW2ldID0gbWluKG1pbl93W3VdW2kgLSAxXSwgbWluX3dbdXBbdV1baSAtIDFdXVtpIC0gMV0pOwogICAgfQogICAgZm9yIChhdXRvIFt2LCBjXSA6IGFkalt1XSkgewogICAgICAgIGlmICh2ID09IHApIGNvbnRpbnVlOwogICAgICAgIGRlcHRoW3ZdID0gZGVwdGhbdV0gKyAxOwogICAgICAgIGRmcyh2LCB1LCBjKTsKICAgIH0KICAgIHRvdXRbdV0gPSB0aW1lcjsKfQoKcGFpcjxpbnQsIGludD4gZ2V0X2xjYShpbnQgdSwgaW50IHYpIHsKICAgIGlmIChkZXB0aFt1XSA8IGRlcHRoW3ZdKSBzd2FwKHUsIHYpOwogICAgaW50IGFucyA9IG9vOwogICAgZm9yIChpbnQgaSA9IExHIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgICAgaWYgKGRlcHRoW3VdIC0gKDEgPDwgaSkgPj0gZGVwdGhbdl0pIHsKICAgICAgICAgICAgYW5zID0gbWluKGFucywgbWluX3dbdV1baV0pOwogICAgICAgICAgICB1ID0gdXBbdV1baV07CiAgICAgICAgfQogICAgaWYgKHUgPT0gdikgcmV0dXJuIHt1LCBhbnN9OwogICAgZm9yIChpbnQgaSA9IExHIC0gMTsgaSA+PSAwOyBpLS0pCiAgICAgICAgaWYgKHVwW3VdW2ldICE9IHVwW3ZdW2ldKSB7CiAgICAgICAgICAgIGFucyA9IG1pbih7YW5zLCBtaW5fd1t1XVtpXSwgbWluX3dbdl1baV19KTsKICAgICAgICAgICAgdSA9IHVwW3VdW2ldOwogICAgICAgICAgICB2ID0gdXBbdl1baV07CiAgICAgICAgfQogICAgYW5zID0gbWluKHthbnMsIG1pbl93W3VdWzBdLCBtaW5fd1t2XVswXX0pOwogICAgcmV0dXJuIHt1cFt1XVswXSwgYW5zfTsKfQoKdm9pZCBzb2x2ZSgpIHsKICAgIGNpbiA+PiBuID4+IHE7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG4gLSAxOyBpKyspIHsKICAgICAgICBpbnQgdSwgdiwgdzsgY2luID4+IHUgPj4gdiA+PiB3OwogICAgICAgIGFkalt1XS5lbXBsYWNlX2JhY2sodiwgdyk7CiAgICAgICAgYWRqW3ZdLmVtcGxhY2VfYmFjayh1LCB3KTsKICAgIH0KICAgIGZvciAoaW50IGkgPSAwOyBpIDwgTEc7IGkrKykgbWluX3dbMF1baV0gPSBvbzsKICAgIGRmcygxLCAwLCBvbyk7CiAgICB3aGlsZSAocS0tKSB7CiAgICAgICAgaW50IHR5cGU7IGNpbiA+PiB0eXBlOwogICAgICAgIGlmICh0eXBlID09IDEpIHsKICAgICAgICAgICAgaW50IHUsIHY7IGNpbiA+PiB1ID4+IHY7CiAgICAgICAgICAgIGlmICh1ID09IHYpIHsKICAgICAgICAgICAgICAgIGNvdXQgPDwgIjBcbiI7CiAgICAgICAgICAgICAgICBjb250aW51ZTsKICAgICAgICAgICAgfQogICAgICAgICAgICBhdXRvIFtsY2EsIGFuc10gPSBnZXRfbGNhKHUsIHYpOwogICAgICAgICAgICBpbnQgY250ID0gZ2V0KHUpICsgZ2V0KHYpIC0gMiAqIGdldChsY2EpICsgcmVtb3ZlZFtsY2FdOwogICAgICAgICAgICBjb3V0IDw8IChjbnQgPiAwID8gLTEgOiBhbnMpIDw8ICdcbic7CiAgICAgICAgfSBlbHNlIGlmICh0eXBlID09IDIpIHsKICAgICAgICAgICAgaW50IHU7IGNpbiA+PiB1OwogICAgICAgICAgICBpZiAoIXJlbW92ZWRbdV0pIHsKICAgICAgICAgICAgICAgIHJlbW92ZWRbdV0gPSAxOwogICAgICAgICAgICAgICAgdXBkYXRlKHRpblt1XSwgMSk7CiAgICAgICAgICAgICAgICB1cGRhdGUodG91dFt1XSArIDEsIC0xKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQoKaW50IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCiAgICAjZGVmaW5lIFRBU0sgIkJBQ0tVUCIKICAgIGlmIChmb3BlbihUQVNLIi5JTlAiLCAiciIpKSB7CiAgICAgICAgZnJlb3BlbihUQVNLIi5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKFRBU0siLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KICAgIAogICAgaW50IHRlc3RzID0gMTsgLy8gY2luID4+IHRlc3RzOwogICAgd2hpbGUgKHRlc3RzLS0pIHNvbHZlKCk7CgogICAgI2lmZGVmIExPQ0FMCiAgICBjZXJyIDw8ICJcblRpbWUgZWxhcHNlZDogIiA8PCBjbG9jaygpIDw8ICIgbXMuXG4iOwogICAgI2VuZGlmCiAgICByZXR1cm4gMDsKfQo=