#include<bits/stdc++.h>
using namespace std;
int n,q,m;
int head[500010],nxt[500010],tot,to[500010];
void add(int u,int v)
{
	nxt[++tot]=head[u],to[tot]=v;
	head[u]=tot;
}
int dep[500005];
int fa[500010][20];
void dfs(int u,int f)
{
	fa[u][0]=f;
	for(int i=head[u];i;i=nxt[i])
	{
		if(to[i]!=f)
		{
			dep[to[i]]=dep[u]+1;
			m=max(m,dep[to[i]]);
			dfs(to[i],u);
		}
	}
//	cout<<head[u]<<endl;
}

int lca(int u,int v)
{
	if(u==v) return u;
	int t;
	if(dep[u]!=dep[v])
	{
		if(dep[u]>dep[v]) swap(u,v);
		t=log2(dep[v]-dep[u]-1);
		while(dep[v]>dep[u]+1)
		{
			while(dep[fa[v][t]]<=dep[u]) t--;
			v=fa[v][t];
		}
		v=fa[v][0];
	}
//	cout<<u<<' '<<v;
	if(u==v) return u;
	t=log2(dep[u]);
	while(fa[u][0]!=fa[v][0])
	{
		while(fa[u][t]==fa[v][t])t--;
		u=fa[u][t],v=fa[v][t];
	}
	return fa[u][0];
}
int LCA[500005<<2];
void build(int u,int l,int r)
{
	if(l==r)
	{
		LCA[u]=l;
//			cout<<LCA[u]<<u<<endl;
//		cout<<l<<' '<<r<<endl;
		return;
	}
	int mid=l+r>>1;
	build(u<<1,l,mid),build(u<<1|1,mid+1,r);
	if(LCA[u<<1]&&LCA[u<<1|1])LCA[u]=lca(LCA[u<<1],LCA[u<<1|1]);
	else LCA[u]=max(LCA[u<<1],LCA[u<<1|1]);
//	cout<<LCA[u]<<u<<endl;
}

int query(int u,int l,int r,int L,int R)
{
	if(l>=L&&r<=R)
	{
//		cout<<LCA[u]<<' '<<u<<endl;
		return LCA[u];
	}//cout<<h[ha(2,2)];
	int mid=l+r>>1,ret1=0,ret2=0;
	if(L<=mid) 
	{
		ret1=query(u<<1,l,mid,L,R);
	}
	if(R>mid) 
	{
		ret2=query(u<<1|1,mid+1,r,L,R);
	}
	if(ret1&&ret2) return lca(ret1,ret2);
	return max(ret1,ret2);
}

int main()
{
	freopen("query.in","r",stdin);
	freopen("query.out","w",stdout);
	scanf("%d",&n);
	for(int i=1;i<n;i++)
	{
		int u,v;
		scanf("%d%d",&u,&v);
		add(u,v);
		add(v,u);
	}
	dep[1]=1;
	dfs(1,0);
	m=log2(m);
//	for(int i=1;i<=n;i++) cout<<dep[i]<<endl;
	for(int i=1;i<=m;i++)
	{
		for(int j=1;j<=n;j++)
		{
			fa[j][i]=fa[fa[j][i-1]][i-1];
//			cout<<j<<' '<<i<<' '<<fa[j][i]<<endl;
		}
	}
	build(1,1,n);
	scanf("%d",&q);
	while(q--)
	{
		int l,r,k,ans=1;
		scanf("%d%d%d",&l,&r,&k);
//		cout<<lca(3,6)<<endl;
		for(int i=l;i<=(r-k+1);i++)
		{
			ans=max(ans,dep[query(1,1,n,i,i+k-1)]);
		}
		printf("%d\n",ans);
	}
	return 0;
}

//6
//5 6
//6 1
//6 2
//2 3
//2 4
//3
//2 5 2
//1 4 1
//1 6 3

