#define PROBLEM "https://judge.yosupo.jp/problem/jump_on_tree"
#include"../template.h"
#include"Tree/BinaryLifting.h"voidsolve(){intn,q;cin>>n>>q;BinLiftbinLift(n);for(inti=0;i<n-1;i++){intu,v;cin>>u>>v;binLift.addEdge(u,v);}binLift.dfs(0,-1);while(q--){ints,t,i;cin>>s>>t>>i;cout<<binLift.jump(s,t,i)<<'\n';}}
#line 1 "Tree/Jump_on_tree.test.cpp"
#define PROBLEM "https://judge.yosupo.jp/problem/jump_on_tree"
#line 2 "template.h"
#include<bits/stdc++.h>usingnamespacestd;#define ll long long
#define MOD (ll)(1e9+7)
#define all(x) (x).begin(),(x).end()
#define unique(x) x.erase(unique(all(x)), x.end())
#define INF32 ((1ull<<31)-1)
#define INF64 ((1ull<<63)-1)
#define inf (ll)1e18
#define vi vector<int>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define fi first
#define se second
constintmod=998244353;voidsolve();intmain(){ios_base::sync_with_stdio(false);cin.tie(NULL);// cin.exceptions(cin.failbit);// int t; cin >> t;// while(t--)solve();cerr<<"\nTime run: "<<1000*clock()/CLOCKS_PER_SEC<<"ms"<<'\n';return0;}#line 2 "Tree/Tree/BinaryLifting.h"
classBinLift{public:intn;vector<vector<int>>tree,up;vector<int>lg,h;BinLift(){}BinLift(intn):n(n),tree(n),up(n,vector<int>(20)),lg(20),h(n){}voiddfs(intu,intp){for(intv:tree[u]){if(v==p)continue;up[v][0]=u;h[v]=h[u]+1;for(intj=1;j<20;j++)up[v][j]=up[up[v][j-1]][j-1];dfs(v,u);}}voidaddEdge(intu,intv){tree[u].emplace_back(v);tree[v].emplace_back(u);}intjump(intu,intv,inti){intt=lca(u,v);intdiff1=h[u]-h[t];intdiff2=h[v]-h[t];if(i>diff1+diff2)return-1;if(i<=diff1)returnancestor_k(u,i);else{intstep=i-diff1;returnancestor_k(v,diff2-step);}}intlca(intu,intv){if(h[u]<h[v])swap(u,v);intk=h[u]-h[v];u=ancestor_k(u,k);if(u==v)returnu;k=__lg(h[u]);for(intj=k;j>=0;j--){if(up[u][j]!=up[v][j]){u=up[u][j];v=up[v][j];}}returnup[u][0];}intancestor_k(intu,intk){for(intj=0;(1<<j)<=k;j++){if(k>>j&1)u=up[u][j];}returnu;}};#line 5 "Tree/Jump_on_tree.test.cpp"
voidsolve(){intn,q;cin>>n>>q;BinLiftbinLift(n);for(inti=0;i<n-1;i++){intu,v;cin>>u>>v;binLift.addEdge(u,v);}binLift.dfs(0,-1);while(q--){ints,t,i;cin>>s>>t>>i;cout<<binLift.jump(s,t,i)<<'\n';}}