#include<bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int n,q,l,r,k,ans;
int h[N],e[N*2],ne[N*2],idx,dep[N];
void add(int x,int y){
	idx++;
	e[idx]=y;
	ne[idx]=h[x];
	h[x]=idx;
}
void dfs(int p,int fa,int d){
	dep[p]=d;
	for(int i=h[p];i;i=ne[i]){
		if(e[i]==fa)	continue ;
		dfs(e[i],p,d+1);
	}
}
int main(){
	freopen("query.in","r",stdin);
	freopen("query.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0);	cout.tie(0);
	cin>>n;
	for(int i=1;i<n;i++){
		int x,y;	cin>>x>>y;
		add(x,y);	add(y,x);
	}
	dfs(1,0,1);
	cin>>q;
	for(int i=1;i<=q;i++){
		cin>>l>>r>>k;
		ans=0;
		priority_queue< pair<int,int> >		q;
		for(int j=l;j<=r;j++){
			q.push({-dep[j],j});
			while(q.size()>k && q.top().second<j-k+1)	q.pop();
			ans=max(ans,-q.top().first);
		}
		cout<<ans<<"\n";
	}
	return 0;
}
