#include<bits/stdc++.h>
using namespace std;
const int N=1e5;
int to[N],flag[N],cnt=0,nxt[N];
int deep[N];
void add(int u,int v){
	nxt[++cnt]=flag[u];
	flag[u]=cnt;
	to[cnt]=v;
	return ;
}
void dfs(int u){
	for(int i=flag[u];i;i=to[i]){
		int v=to[i];
		deep[v]=deep[u]+1;
		dfs(v);
	}
}
int main(){
	freopen("query.in","r",stdin);
	freopen("query.out","w",stdout);
	int n,u,v;
	cin>>n;
	for(int i=1;i<=n-1;i++) cin>>v>>u,add(u,v);
	int l,r,k;
	deep[1]=1;
	dfs(1);
	for(int i=1;i<=n+1;i++){
		cin>>l>>r>>k;
		int minx=N;
		for(int j=l;j<=r;j++)
			minx=min(minx,deep[j]);
			cout<<minx<<endl;
	}
	return 0;
}
