#include<bits/stdc++.h>
#define ll long long
#define pb push_back
#define fi first
#define se second

using namespace std;

const int N=5e5+5;

bool mbs;

int n,q;
int lg[N*2];
int head[N],tot;
struct edge{
	int nxt,to;
}e[N*2];
int dep[N],cnt;
int idx[N],CCC;
pair <int,int> mn[N*2][20];
pair <int,int> L[N][20],R[N][20];
int pos[N];

void add(int u,int v){
	e[++tot].to=v;
	e[tot].nxt=head[u];
	head[u]=tot;
}

void dfs(int u,int fa){
	dep[u]=dep[fa]+1;
	mn[++cnt][0]={dep[u],u};
	pos[u]=cnt;
	idx[u]=++CCC;
	L[u][0]={idx[u],u};
	R[u][0]={idx[u],u};
	
	for(int i=head[u];i;i=e[i].nxt){
		int v=e[i].to;
		if(v==fa) continue;
		dfs(v,u);
		mn[++cnt][0]={dep[u],u};
	}
}

int Min(int l,int r){
	int k=lg[r-l+1];
	return min(mn[l][k],mn[r-(1<<k)+1][k]).se;
}

pair <int,int> get_L(int l,int r){
	int k=lg[r-l+1];
	return min(L[l][k],L[r-(1<<k)+1][k]);
}

pair <int,int> get_R(int l,int r){
	int k=lg[r-l+1];
	return max(R[l][k],R[r-(1<<k)+1][k]);
}

int lca(int x,int y){
	int l=pos[x],r=pos[y];
	if(l>r) swap(l,r);
	return Min(l,r);
}

int query(int l,int r){
	int x=get_L(l,r).se,y=get_R(l,r).se;
//	cout<<"qwq "<<l<<' '<<r<<' '<<x<<' '<<y<<'\n';
	return dep[lca(x,y)];
}

bool mbe;

int main(){
	freopen("query.in","r",stdin);
	freopen("query.out","w",stdout);
	
	cin.tie(0); ios::sync_with_stdio(false);
	
//	cout<<"QWQWQWWQWQ "<<((&mbs)-(&mbe))/1024.0/1024.0<<"MB"<<endl;
	
	lg[0]=-1;
	for(int i=1;i<2*N;i++) lg[i]=lg[i>>1]+1;
	
	cin>>n;
	for(int i=1,u,v;i<n;i++){
		cin>>u>>v;
		add(u,v);
		add(v,u);
	}
	dfs(1,0);
	for(int k=1;k<=lg[2*n-1];k++)
		for(int i=1;i+(1<<k)-1<=2*n-1;i++)
			mn[i][k]=min(mn[i][k-1],mn[i+(1<<(k-1))][k-1]);
	for(int k=1;k<=lg[n];k++)
		for(int i=1;i+(1<<k)-1<=n;i++){
			L[i][k]=min(L[i][k-1],L[i+(1<<(k-1))][k-1]);
			R[i][k]=max(R[i][k-1],R[i+(1<<(k-1))][k-1]);
		}
	
//	cout<<"qwq\n";
//	for(int i=1;i<=n;i++) cout<<idx[i]<<' ';
//	cout<<'\n';
//	cout<<"QWQ "<<get_R(1,3).se<<'\n';
	
	cin>>q;
	int l,r,k;
	while(q--){
		cin>>l>>r>>k;
		int res=0;
		for(int i=l;i+k-1<=r;i++){
			int j=i+k-1;
			res=max(res,query(i,j));
		}
		cout<<res<<'\n';
	}
	
	return 0;
}
