#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using PII = pair<ll, ll>;
#define FOR(i, a, n) for (ll i = (ll)a; i < (ll)n; ++i)
#define REP(i, n) FOR(i, 0, n)
#define ALL(x) x.begin(), x.end()
template<typename T> void chmin(T &a, const T &b) { a = min(a, b); }
template<typename T> void chmax(T &a, const T &b) { a = max(a, b); }
struct FastIO {FastIO() { cin.tie(0); ios::sync_with_stdio(0); }}fastiofastio;
#ifdef DEBUG_
#include "../program_contest_library/memo/dump.hpp"
#else
#define dump(...)
#endif
const ll INF = 1LL<<60;
template <typename S>
struct sparseTable {
using T = typename S::T;
int n;
vector<int> log2;
vector<vector<T>> t;
sparseTable() {}
sparseTable(int nn) { construct(nn); }
void construct(int nn) {
n = nn;
log2.assign(n+1, 0);
for(int i=2; i<=n; ++i) log2[i] = log2[i >> 1] + 1;
t = vector<vector<T>>(log2[n]+1, vector<T>(n));
}
void init(vector<T> v) {
for(int i=0; i<n; ++i) t[0][i] = v[i];
for(int j=1; j<=log2[n]; ++j) {
int w = 1LL<<(j-1);
for (int i = 0; i+(w<<1) <= n; ++i) {
t[j][i] = S::op(t[j-1][i], t[j-1][i+w]);
}
}
}
// [l, r]
T query(int l, int r) {
int j = log2[r - l];
return S::op(t[j][l], t[j][r-(1 << j)+1]);
}
};
class LCA {
private:
const int n = 0;
const int log2_n = 0;
vector<vector<int>> par;
vector<vector<int>> g;
vector<int> depth; // 頂点iの深さ
vector<int> vs; // 頂点を訪問順に並べたもの
vector<int> depth_seq; // depth_seq[i] = (頂点vs[i]の深さ)
vector<int> id; // 頂点が初めてvsに登場するインデックス
struct minimum_st {
using T = PII;
static T op(const T& a, const T& b) { return min(a, b); }
};
sparseTable<minimum_st> st;
void dfs(int v, int p, int d, int &k) {
id[v] = k; vs[k] = v; depth_seq[k++] = d; depth[v] = d;
for(auto to: g[v]) if(to != p) {
dfs(to, v, d+1, k);
vs[k] = v; depth_seq[k++] = d;
}
}
public:
LCA(int n_=1e5) : n(n_), g(n), depth(n), vs(2*n-1), depth_seq(2*n-1), id(n) {}
// u-vに辺を張る
void add_edge(int u, int v) {
g[u].push_back(v);
g[v].push_back(u);
}
// rootを根として初期化
void build(int root = 0) {
int k = 0;
dfs(root, -1, 0, k);
vector<PII> v(2*n-1);
REP(i, 2*n-1) v[i] = {depth_seq[i], i};
st.construct(2*n-1);
st.init(v);
}
// uとvのlcaを返す O(1)
int get(int u, int v) {
if(id[u] > id[v]) swap(u, v);
return vs[st.query(id[u], id[v]).second];
}
};
int main(void) {
ll n;
cin >> n;
vector<vector<PII>> g(n);
LCA lca(n);
REP(i, n-1) {
ll a, b, c;
cin >> a >> b >> c;
a--, b--;
g[a].emplace_back(b, c);
g[b].emplace_back(a, c);
lca.add_edge(a, b);
}
lca.build();
vector<ll> sz(n), dead(n);
auto find_centroid = [&](ll root) {
auto get_size = [&](auto &&self, ll v, ll p) -> void {
sz[v] = 1;
for(auto to: g[v]) if(to.first != p && !dead[to.first]) {
self(self, to.first, v);
sz[v] += sz[to.first];
}
};
get_size(get_size, root, -1);
auto dfs = [&](auto &&self, ll v, ll p) -> ll {
for(auto to: g[v]) if(to.first != p && !dead[to.first]) {
if(sz[to.first] > sz[root]/2) return self(self, to.first, v);
}
return v;
};
return dfs(dfs, root, -1);
};
vector<ll> par(n);
auto centroid_decomposition = [&](auto &&self, ll root, ll p) -> void {
ll c = find_centroid(root);
dead[c] = true;
par[c] = p;
for(auto to: g[c]) if(!dead[to.first]) {
self(self, to.first, c);
}
dead[c] = false;
};
centroid_decomposition(centroid_decomposition, 0, -1);
vector<ll> depth(n);
auto get_depth = [&](auto &&self, ll v, ll p, ll d) -> void {
depth[v] = d;
for(auto to: g[v]) if(to.first!=p) {
self(self, to.first, v, d+to.second);
}
};
get_depth(get_depth, 0, -1, 0);
auto distance = [&](ll u, ll v) {
return depth[u] + depth[v] - 2*depth[lca.get(u,v)];
};
using P = pair<ll,PII>;
vector<vector<P>> info(n);
ll q;
cin >> q;
REP(i, q) {
ll type, v;
cin >> type >> v;
v--;
if(type == 1) {
ll d, c;
cin >> d >> c;
ll u = v;
while(u != -1) {
ll dist = d - distance(u, v);
if(dist < 0) {
u = par[u];
continue;
}
while(info[u].size() && info[u].rbegin()->first <= dist) info[u].pop_back();
info[u].push_back({dist, {i, c}});
u = par[u];
}
} else {
ll u = v;
PII ret({-1, 0});
if(i == q/2) dump(info[u].size());
while(u != -1) {
ll dist = distance(u, v);
for(auto j: info[u]) {
if(j.first < dist) break;
chmax(ret, j.second);
}
u = par[u];
}
cout << ret.second << "\n";
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnVzaW5nIGxsID0gbG9uZyBsb25nOwp1c2luZyBQSUkgPSBwYWlyPGxsLCBsbD47CiNkZWZpbmUgRk9SKGksIGEsIG4pIGZvciAobGwgaSA9IChsbClhOyBpIDwgKGxsKW47ICsraSkKI2RlZmluZSBSRVAoaSwgbikgRk9SKGksIDAsIG4pCiNkZWZpbmUgQUxMKHgpIHguYmVnaW4oKSwgeC5lbmQoKQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGNobWluKFQgJmEsIGNvbnN0IFQgJmIpIHsgYSA9IG1pbihhLCBiKTsgfQp0ZW1wbGF0ZTx0eXBlbmFtZSBUPiB2b2lkIGNobWF4KFQgJmEsIGNvbnN0IFQgJmIpIHsgYSA9IG1heChhLCBiKTsgfQpzdHJ1Y3QgRmFzdElPIHtGYXN0SU8oKSB7IGNpbi50aWUoMCk7IGlvczo6c3luY193aXRoX3N0ZGlvKDApOyB9fWZhc3Rpb2Zhc3RpbzsKI2lmZGVmIERFQlVHXyAKI2luY2x1ZGUgIi4uL3Byb2dyYW1fY29udGVzdF9saWJyYXJ5L21lbW8vZHVtcC5ocHAiCiNlbHNlCiNkZWZpbmUgZHVtcCguLi4pCiNlbmRpZgpjb25zdCBsbCBJTkYgPSAxTEw8PDYwOwoKdGVtcGxhdGUgPHR5cGVuYW1lIFM+CnN0cnVjdCBzcGFyc2VUYWJsZSB7CiAgICB1c2luZyBUID0gdHlwZW5hbWUgUzo6VDsKICAgIGludCBuOwogICAgdmVjdG9yPGludD4gbG9nMjsKICAgIHZlY3Rvcjx2ZWN0b3I8VD4+IHQ7CgogICAgc3BhcnNlVGFibGUoKSB7fQogICAgc3BhcnNlVGFibGUoaW50IG5uKSB7IGNvbnN0cnVjdChubik7IH0KICAgIHZvaWQgY29uc3RydWN0KGludCBubikgewogICAgICAgIG4gPSBubjsKICAgICAgICBsb2cyLmFzc2lnbihuKzEsIDApOwogICAgICAgIGZvcihpbnQgaT0yOyBpPD1uOyArK2kpIGxvZzJbaV0gPSBsb2cyW2kgPj4gMV0gKyAxOwogICAgICAgIHQgPSB2ZWN0b3I8dmVjdG9yPFQ+Pihsb2cyW25dKzEsIHZlY3RvcjxUPihuKSk7CiAgICB9CiAgICB2b2lkIGluaXQodmVjdG9yPFQ+IHYpIHsKICAgICAgICBmb3IoaW50IGk9MDsgaTxuOyArK2kpIHRbMF1baV0gPSB2W2ldOwogICAgICAgIGZvcihpbnQgaj0xOyBqPD1sb2cyW25dOyArK2opIHsKICAgICAgICAgICAgaW50IHcgPSAxTEw8PChqLTEpOwogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSsodzw8MSkgPD0gbjsgKytpKSB7CiAgICAgICAgICAgICAgICB0W2pdW2ldID0gUzo6b3AodFtqLTFdW2ldLCB0W2otMV1baSt3XSk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CiAgICAvLyBbbCwgcl0KICAgIFQgcXVlcnkoaW50IGwsIGludCByKSB7CiAgICAgICAgaW50IGogPSBsb2cyW3IgLSBsXTsKICAgICAgICByZXR1cm4gUzo6b3AodFtqXVtsXSwgdFtqXVtyLSgxIDw8IGopKzFdKTsKICAgIH0KfTsKCmNsYXNzIExDQSB7CnByaXZhdGU6CiAgICBjb25zdCBpbnQgbiA9IDA7CiAgICBjb25zdCBpbnQgbG9nMl9uID0gMDsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gcGFyOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBnOwogICAgdmVjdG9yPGludD4gZGVwdGg7ICAgICAvLyDpoILngrlp44Gu5rex44GVCiAgICB2ZWN0b3I8aW50PiB2czsgICAgICAgIC8vIOmggueCueOCkuioquWVj+mghuOBq+S4puOBueOBn+OCguOBrgogICAgdmVjdG9yPGludD4gZGVwdGhfc2VxOyAvLyBkZXB0aF9zZXFbaV0gPSAo6aCC54K5dnNbaV3jga7mt7HjgZUpCiAgICB2ZWN0b3I8aW50PiBpZDsgICAgICAgIC8vIOmggueCueOBjOWIneOCgeOBpnZz44Gr55m75aC044GZ44KL44Kk44Oz44OH44OD44Kv44K5CiAgICBzdHJ1Y3QgbWluaW11bV9zdCB7CiAgICAgICAgdXNpbmcgVCA9IFBJSTsKICAgICAgICBzdGF0aWMgVCBvcChjb25zdCBUJiBhLCBjb25zdCBUJiBiKSB7IHJldHVybiBtaW4oYSwgYik7IH0KICAgIH07IAogICAgc3BhcnNlVGFibGU8bWluaW11bV9zdD4gc3Q7CiAgICB2b2lkIGRmcyhpbnQgdiwgaW50IHAsIGludCBkLCBpbnQgJmspIHsKICAgICAgICBpZFt2XSA9IGs7IHZzW2tdID0gdjsgZGVwdGhfc2VxW2srK10gPSBkOyBkZXB0aFt2XSA9IGQ7CiAgICAgICAgZm9yKGF1dG8gdG86IGdbdl0pIGlmKHRvICE9IHApIHsKICAgICAgICAgICAgZGZzKHRvLCB2LCBkKzEsIGspOwogICAgICAgICAgICB2c1trXSA9IHY7IGRlcHRoX3NlcVtrKytdID0gZDsKICAgICAgICB9CiAgICB9CnB1YmxpYzoKICAgIExDQShpbnQgbl89MWU1KSA6IG4obl8pLCBnKG4pLCBkZXB0aChuKSwgdnMoMipuLTEpLCBkZXB0aF9zZXEoMipuLTEpLCBpZChuKSB7fQogICAgLy8gdS1244Gr6L6644KS5by144KLCiAgICB2b2lkIGFkZF9lZGdlKGludCB1LCBpbnQgdikgewogICAgICAgIGdbdV0ucHVzaF9iYWNrKHYpOwogICAgICAgIGdbdl0ucHVzaF9iYWNrKHUpOwogICAgfQogICAgLy8gcm9vdOOCkuagueOBqOOBl+OBpuWIneacn+WMlgogICAgdm9pZCBidWlsZChpbnQgcm9vdCA9IDApIHsKICAgICAgICBpbnQgayA9IDA7CiAgICAgICAgZGZzKHJvb3QsIC0xLCAwLCBrKTsKICAgICAgICB2ZWN0b3I8UElJPiB2KDIqbi0xKTsKICAgICAgICBSRVAoaSwgMipuLTEpIHZbaV0gPSB7ZGVwdGhfc2VxW2ldLCBpfTsKICAgICAgICBzdC5jb25zdHJ1Y3QoMipuLTEpOwogICAgICAgIHN0LmluaXQodik7CiAgICB9CiAgICAvLyB144GoduOBrmxjYeOCkui/lOOBmSBPKDEpCiAgICBpbnQgZ2V0KGludCB1LCBpbnQgdikgewogICAgICAgIGlmKGlkW3VdID4gaWRbdl0pIHN3YXAodSwgdik7CiAgICAgICAgcmV0dXJuIHZzW3N0LnF1ZXJ5KGlkW3VdLCBpZFt2XSkuc2Vjb25kXTsKICAgIH0KfTsKCmludCBtYWluKHZvaWQpIHsKICAgIGxsIG47CiAgICBjaW4gPj4gbjsKICAgIHZlY3Rvcjx2ZWN0b3I8UElJPj4gZyhuKTsKICAgIExDQSBsY2Eobik7CiAgICBSRVAoaSwgbi0xKSB7CiAgICAgICAgbGwgYSwgYiwgYzsKICAgICAgICBjaW4gPj4gYSA+PiBiID4+IGM7CiAgICAgICAgYS0tLCBiLS07CiAgICAgICAgZ1thXS5lbXBsYWNlX2JhY2soYiwgYyk7CiAgICAgICAgZ1tiXS5lbXBsYWNlX2JhY2soYSwgYyk7CiAgICAgICAgbGNhLmFkZF9lZGdlKGEsIGIpOwogICAgfQogICAgbGNhLmJ1aWxkKCk7CgogICAgdmVjdG9yPGxsPiBzeihuKSwgZGVhZChuKTsKICAgIGF1dG8gZmluZF9jZW50cm9pZCA9IFsmXShsbCByb290KSB7CiAgICAgICAgYXV0byBnZXRfc2l6ZSA9IFsmXShhdXRvICYmc2VsZiwgbGwgdiwgbGwgcCkgLT4gdm9pZCB7CiAgICAgICAgICAgIHN6W3ZdID0gMTsKICAgICAgICAgICAgZm9yKGF1dG8gdG86IGdbdl0pIGlmKHRvLmZpcnN0ICE9IHAgJiYgIWRlYWRbdG8uZmlyc3RdKSB7CiAgICAgICAgICAgICAgICBzZWxmKHNlbGYsIHRvLmZpcnN0LCB2KTsKICAgICAgICAgICAgICAgIHN6W3ZdICs9IHN6W3RvLmZpcnN0XTsKICAgICAgICAgICAgfQogICAgICAgIH07CiAgICAgICAgZ2V0X3NpemUoZ2V0X3NpemUsIHJvb3QsIC0xKTsKICAgICAgICBhdXRvIGRmcyA9IFsmXShhdXRvICYmc2VsZiwgbGwgdiwgbGwgcCkgLT4gbGwgewogICAgICAgICAgICBmb3IoYXV0byB0bzogZ1t2XSkgaWYodG8uZmlyc3QgIT0gcCAmJiAhZGVhZFt0by5maXJzdF0pIHsKICAgICAgICAgICAgICAgIGlmKHN6W3RvLmZpcnN0XSA+IHN6W3Jvb3RdLzIpIHJldHVybiBzZWxmKHNlbGYsIHRvLmZpcnN0LCB2KTsKICAgICAgICAgICAgfQogICAgICAgICAgICByZXR1cm4gdjsKICAgICAgICB9OwogICAgICAgIHJldHVybiBkZnMoZGZzLCByb290LCAtMSk7CiAgICB9OwoKICAgIHZlY3RvcjxsbD4gcGFyKG4pOwogICAgYXV0byBjZW50cm9pZF9kZWNvbXBvc2l0aW9uID0gWyZdKGF1dG8gJiZzZWxmLCBsbCByb290LCBsbCBwKSAtPiB2b2lkIHsKICAgICAgICBsbCBjID0gZmluZF9jZW50cm9pZChyb290KTsKICAgICAgICBkZWFkW2NdID0gdHJ1ZTsKICAgICAgICBwYXJbY10gPSBwOwogICAgICAgIGZvcihhdXRvIHRvOiBnW2NdKSBpZighZGVhZFt0by5maXJzdF0pIHsKICAgICAgICAgICAgc2VsZihzZWxmLCB0by5maXJzdCwgYyk7CiAgICAgICAgfQogICAgICAgIGRlYWRbY10gPSBmYWxzZTsKICAgIH07CiAgICBjZW50cm9pZF9kZWNvbXBvc2l0aW9uKGNlbnRyb2lkX2RlY29tcG9zaXRpb24sIDAsIC0xKTsKCiAgICB2ZWN0b3I8bGw+IGRlcHRoKG4pOwogICAgYXV0byBnZXRfZGVwdGggPSBbJl0oYXV0byAmJnNlbGYsIGxsIHYsIGxsIHAsIGxsIGQpIC0+IHZvaWQgewogICAgICAgIGRlcHRoW3ZdID0gZDsKICAgICAgICBmb3IoYXV0byB0bzogZ1t2XSkgaWYodG8uZmlyc3QhPXApIHsKICAgICAgICAgICAgc2VsZihzZWxmLCB0by5maXJzdCwgdiwgZCt0by5zZWNvbmQpOwogICAgICAgIH0KICAgIH07CiAgICBnZXRfZGVwdGgoZ2V0X2RlcHRoLCAwLCAtMSwgMCk7CiAgICBhdXRvIGRpc3RhbmNlID0gWyZdKGxsIHUsIGxsIHYpIHsKICAgICAgICByZXR1cm4gZGVwdGhbdV0gKyBkZXB0aFt2XSAtIDIqZGVwdGhbbGNhLmdldCh1LHYpXTsKICAgIH07CgogICAgdXNpbmcgUCA9IHBhaXI8bGwsUElJPjsKICAgIHZlY3Rvcjx2ZWN0b3I8UD4+IGluZm8obik7CiAgICBsbCBxOwogICAgY2luID4+IHE7CiAgICBSRVAoaSwgcSkgewogICAgICAgIGxsIHR5cGUsIHY7CiAgICAgICAgY2luID4+IHR5cGUgPj4gdjsKICAgICAgICB2LS07CiAgICAgICAgaWYodHlwZSA9PSAxKSB7CiAgICAgICAgICAgIGxsIGQsIGM7CiAgICAgICAgICAgIGNpbiA+PiBkID4+IGM7CiAgICAgICAgICAgIGxsIHUgPSB2OwogICAgICAgICAgICB3aGlsZSh1ICE9IC0xKSB7CiAgICAgICAgICAgICAgICBsbCBkaXN0ID0gZCAtIGRpc3RhbmNlKHUsIHYpOwogICAgICAgICAgICAgICAgaWYoZGlzdCA8IDApIHsKICAgICAgICAgICAgICAgICAgICB1ID0gcGFyW3VdOwogICAgICAgICAgICAgICAgICAgIGNvbnRpbnVlOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgd2hpbGUoaW5mb1t1XS5zaXplKCkgJiYgaW5mb1t1XS5yYmVnaW4oKS0+Zmlyc3QgPD0gZGlzdCkgaW5mb1t1XS5wb3BfYmFjaygpOwogICAgICAgICAgICAgICAgaW5mb1t1XS5wdXNoX2JhY2soe2Rpc3QsIHtpLCBjfX0pOwogICAgICAgICAgICAgICAgdSA9IHBhclt1XTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxsIHUgPSB2OwogICAgICAgICAgICBQSUkgcmV0KHstMSwgMH0pOwogICAgICAgICAgICBpZihpID09IHEvMikgZHVtcChpbmZvW3VdLnNpemUoKSk7CiAgICAgICAgICAgIHdoaWxlKHUgIT0gLTEpIHsKICAgICAgICAgICAgICAgIGxsIGRpc3QgPSBkaXN0YW5jZSh1LCB2KTsKICAgICAgICAgICAgICAgIGZvcihhdXRvIGo6IGluZm9bdV0pIHsKICAgICAgICAgICAgICAgICAgICBpZihqLmZpcnN0IDwgZGlzdCkgYnJlYWs7CiAgICAgICAgICAgICAgICAgICAgY2htYXgocmV0LCBqLnNlY29uZCk7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB1ID0gcGFyW3VdOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGNvdXQgPDwgcmV0LnNlY29uZCA8PCAiXG4iOwogICAgICAgIH0KICAgIH0KCiAgICByZXR1cm4gMDsKfQ==