#include <bits/stdc++.h>
using namespace std;

int n, q, k, h[100005], f[100005], v[100005], ans;

struct node
{
	int a, b, n;
} d[100005];

void cun(int a, int b)
{
	d[++k].a = a, d[k].b = b;
	d[k].n = h[a], h[a] = k;
	return;
}

void dfs(int x, int st)
{
	v[x] = st;
	for (int j = h[x]; j; j = d[j].n)
	{
		int b = d[j].b;
		if (b != f[x])
		{
			f[b] = x;
			dfs(b, st + 1);
		}
	}
}

signed main()
{
	freopen("query.in", "r", stdin);
	freopen("query.out", "w", stdout);
	scanf("%d", &n);
	for (int i = 1, a, b; i < n; i++)
	{
		scanf("%d%d", &a, &b);
		cun(a, b);
		cun(b, a);
	}
//	for (int i = 1; i <= sqrt(n); i++)
//	{
//		for (int j = i * sqrt(n); j <= min((i + 1) * sqrt(n), n); j++)
//		{
//			
//		}
//	}
//	dfs(1);
	scanf("%d", &q);
	while (q--)
	{
		int l, r, kk;
		scanf("%d%d%d", &l, &r, &kk);
		printf("%d\n", l);
	}
	return 0;
}
