#include <bits/stdc++.h>
#define ll long long

using namespace std;
const int N=5010;
int n,q,dep[N],fa[N][20];
vector<int> g[N];

void dfs(int u,int f) {
	dep[u]=dep[f]+1;
	fa[u][0]=f;
	for(int i=1;i<20;i++)
		fa[u][i]=fa[fa[u][i-1]][i-1];
	for(auto v:g[u]) if(v!=f) dfs(v,u);
	return ;
}

int lca(int u,int v) {
	if(dep[u]<dep[v]) swap(u,v);
	for(int i=20;i>=0;i--)
		if(dep[fa[u][i]]>=dep[v]) 
			u=fa[u][i];
	if(u==v) return v;
	for(int i=20;i>=0;i--)
		if(fa[u][i]!=fa[v][i])
			u=fa[u][i],v=fa[v][i];
	return fa[u][0];
}

signed main() {
	freopen("query.in","r",stdin);
	freopen("query.out","w",stdout);
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);
	
	cin>>n;
	for(int i=1;i<n;i++) {
		int u,v;
		cin>>u>>v;
		g[u].push_back(v);
		g[v].push_back(u);
	}
	dfs(1,0);
	cin>>q;
	while(q--) {
		int l,r,k;
		cin>>l>>r>>k;
		int res=1;
		for(int L=l;L+k-1<=r;L++) {
			int ans=L;
			for(int p=L+1;p<=L+k-1;p++) {ans=lca(ans,p);}
			res=max(res,dep[ans]);
		}
		cout<<res<<"\n";
	}
	return 0;
}
