#include<bits/stdc++.h>
using namespace std;
#define crap ios::sync_with_stdio(false);cin.tie(NULL);cout.tie(NULL)
typedef long long int ll;
typedef unsigned long long ull;
typedef std::vector<int> vi;
typedef std::vector<ll> vll;
typedef std::vector<vi > vvi;
typedef std::vector<vll > vvll;
typedef std::pair<int,int> ii;
typedef std::pair< ll, ll > lp;
typedef std::vector<ii> vii;
typedef std::vector<vii > vvii;
#define pb push_back
#define PB pop_back
#define pf push_front
#define PF pop_front
#define mp make_pair
#define ub(a,b) upper_bound(all(a),b)
#define lb(a,b) lower_bound(all(a),b)
#define bs(a,b) binary_search(all(a),b)
#define mem(a,b) memset(a,b,sizeof(a))
#define in(a,n) f(i,0,n-1)cin>>a[i]
#define in1(a,n) f(i,1,n)cin>>a[i]
#define out(a,n) f(i,0,n-1)cout<<a[i]<<" ";cout<<"\n"
#define ff first
#define ss second
#define f(i,a,b) for (int i=a;i<=b;i++)
#define rf(i,a,b) for(int i=a;i>=b;i--)
#define rep(i,n) f(i,0,n-1)
#define clr(a) (a).clear()
#define rz resize
#define sqr(a) ((a) * (a))
#define sz(a) int((a).size())
#define all(a) (a).begin(), (a).end()
#define rall(a) (a).rbegin() ,(a).rend()
#define endl '\n'
const int N=(int)1e5 +5;
const int LG=20;
int maxi[LG][N],P[LG][N],par[N],lvl[N];
vii gr[N];
void dfs(int u,int p=-1,int l=0)
{
par[u]=p;
P[0][u]=p;
lvl[u]=l;
for (auto v:gr[u])
{
if (v.ff==p) continue;
dfs(v.ff,u,l+1);
maxi[0][v.ff]=v.ss;
}
}
int LCA(int u, int v)
{
int log;
if (u==v)return u;
if (lvl[u]<lvl[v])
swap(u,v);
for (log=1;1<<log <=lvl[u] ; log++);
log--;
for (int i=log;i>=0;i--)
{
if (lvl[u]-(1<<i) >= lvl[v])
u=P[i][u];
}
if (u==v)
return u;
for (int i=log;i>=0;i--)
{
if (P[i][u]!=-1 && P[i][u]!=P[i][v])
u=P[i][u],v=P[i][v];
}
return P[0][u];
}
int main(int argc, char const *argv[])
{
crap;
int n;
cin>>n;
while (n)
{
rep(i,LG)
rep(j,N)
P[i][j]=-1,maxi[i][j]=INT_MIN,lvl[j]=0,par[j]=-1,gr[j].clear();
int u,v,c;
rep(i,n-1)
cin>>u>>v>>c,gr[u].pb(mp(v,c)),gr[v].pb(mp(u,c));
dfs(1);
// cout<<"Yay!\n";
//filling up the sparse table
f(i,1,LG-1)
{
f(j,1,n)
{
if (P[i-1][j]!=-1)
{
P[i][j]=P[i-1][P[i-1][j]];
maxi[i][j]=max(maxi[i-1][j],maxi[i-1][P[i-1][j]]);
}
}
}
int q;
cin>>q;
while (q--)
{
cin>>u>>v;
int lca=LCA(u,v);
int mpath1=INT_MIN,mpath2=INT_MIN;
for (int i=LG-1;i>=0;i--)
{
if (lvl[u]-(1<<i) >= lvl[lca])
{
mpath1=max(mpath1,maxi[i][u]);
u=P[i][u];
}
}
for (int i=LG-1;i>=0;i--)
{
if (lvl[v]-(1<<i) >= lvl[lca])
{
mpath2=max(mpath2,maxi[i][v]);
v=P[i][v];
}
}
// if (mpath1==INT_MIN)
// cout<<mpath2<<endl;
// else if (mpath2==INT_MIN)
// cout<<mpath1<<endl;
// else
cout<<max(mpath1,mpath2)<<endl;
}
cin>>n;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBjcmFwIGlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTtjaW4udGllKE5VTEwpO2NvdXQudGllKE5VTEwpCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKdHlwZWRlZiB1bnNpZ25lZCBsb25nIGxvbmcgdWxsOwp0eXBlZGVmIHN0ZDo6dmVjdG9yPGludD4gdmk7CnR5cGVkZWYgc3RkOjp2ZWN0b3I8bGw+IHZsbDsKdHlwZWRlZiBzdGQ6OnZlY3Rvcjx2aSA+IHZ2aTsKdHlwZWRlZiBzdGQ6OnZlY3Rvcjx2bGwgPiB2dmxsOwp0eXBlZGVmIHN0ZDo6cGFpcjxpbnQsaW50PiBpaTsKdHlwZWRlZiBzdGQ6OnBhaXI8IGxsLCBsbCA+IGxwOwp0eXBlZGVmIHN0ZDo6dmVjdG9yPGlpPiB2aWk7CnR5cGVkZWYgc3RkOjp2ZWN0b3I8dmlpID4gdnZpaTsKCiNkZWZpbmUgcGIgcHVzaF9iYWNrIAojZGVmaW5lIFBCIHBvcF9iYWNrCiNkZWZpbmUgcGYgcHVzaF9mcm9udAojZGVmaW5lIFBGIHBvcF9mcm9udAojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHViKGEsYikgdXBwZXJfYm91bmQoYWxsKGEpLGIpCiNkZWZpbmUgbGIoYSxiKSBsb3dlcl9ib3VuZChhbGwoYSksYikKI2RlZmluZSBicyhhLGIpIGJpbmFyeV9zZWFyY2goYWxsKGEpLGIpCiNkZWZpbmUgbWVtKGEsYikgbWVtc2V0KGEsYixzaXplb2YoYSkpCiNkZWZpbmUgaW4oYSxuKSBmKGksMCxuLTEpY2luPj5hW2ldCiNkZWZpbmUgaW4xKGEsbikgZihpLDEsbiljaW4+PmFbaV0KI2RlZmluZSBvdXQoYSxuKSBmKGksMCxuLTEpY291dDw8YVtpXTw8IiAiO2NvdXQ8PCJcbiIKI2RlZmluZSBmZiBmaXJzdAojZGVmaW5lIHNzIHNlY29uZAojZGVmaW5lIGYoaSxhLGIpIGZvciAoaW50IGk9YTtpPD1iO2krKykKI2RlZmluZSByZihpLGEsYikgZm9yKGludCBpPWE7aT49YjtpLS0pCiNkZWZpbmUgcmVwKGksbikgZihpLDAsbi0xKQojZGVmaW5lIGNscihhKSAoYSkuY2xlYXIoKQojZGVmaW5lIHJ6IHJlc2l6ZQojZGVmaW5lIHNxcihhKSAoKGEpICogKGEpKQojZGVmaW5lIHN6KGEpIGludCgoYSkuc2l6ZSgpKQojZGVmaW5lIGFsbChhKSAoYSkuYmVnaW4oKSwgKGEpLmVuZCgpCiNkZWZpbmUgcmFsbChhKSAoYSkucmJlZ2luKCkgLChhKS5yZW5kKCkKI2RlZmluZSBlbmRsICdcbicKCmNvbnN0IGludCBOPShpbnQpMWU1ICs1Owpjb25zdCBpbnQgTEc9MjA7CgppbnQgbWF4aVtMR11bTl0sUFtMR11bTl0scGFyW05dLGx2bFtOXTsKCnZpaSBncltOXTsKCnZvaWQgZGZzKGludCB1LGludCBwPS0xLGludCBsPTApCnsKCXBhclt1XT1wOwoJUFswXVt1XT1wOwoJbHZsW3VdPWw7Cglmb3IgKGF1dG8gdjpnclt1XSkKCXsKCQlpZiAodi5mZj09cCkgY29udGludWU7CgkJZGZzKHYuZmYsdSxsKzEpOwoJCW1heGlbMF1bdi5mZl09di5zczsKCX0KfQoKaW50IExDQShpbnQgdSwgaW50IHYpCnsKCWludCBsb2c7CglpZiAodT09dilyZXR1cm4gdTsKCWlmIChsdmxbdV08bHZsW3ZdKQoJCXN3YXAodSx2KTsKCWZvciAobG9nPTE7MTw8bG9nIDw9bHZsW3VdIDsgbG9nKyspOwoJbG9nLS07CgoJZm9yIChpbnQgaT1sb2c7aT49MDtpLS0pCgl7CgkJaWYgKGx2bFt1XS0oMTw8aSkgPj0gbHZsW3ZdKQoJCQl1PVBbaV1bdV07Cgl9CgoJaWYgKHU9PXYpCgkJcmV0dXJuIHU7Cglmb3IgKGludCBpPWxvZztpPj0wO2ktLSkKCXsKCQlpZiAoUFtpXVt1XSE9LTEgJiYgUFtpXVt1XSE9UFtpXVt2XSkKCQkJdT1QW2ldW3VdLHY9UFtpXVt2XTsKCX0KCglyZXR1cm4gUFswXVt1XTsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgY29uc3QgKmFyZ3ZbXSkKewoJY3JhcDsKCWludCBuOwoJY2luPj5uOwoJd2hpbGUgKG4pCgl7CgkJcmVwKGksTEcpCgkJCXJlcChqLE4pCgkJCQlQW2ldW2pdPS0xLG1heGlbaV1bal09SU5UX01JTixsdmxbal09MCxwYXJbal09LTEsZ3Jbal0uY2xlYXIoKTsKCQkKCQlpbnQgdSx2LGM7CgkJcmVwKGksbi0xKQkKCQkJY2luPj51Pj52Pj5jLGdyW3VdLnBiKG1wKHYsYykpLGdyW3ZdLnBiKG1wKHUsYykpOwoJCWRmcygxKTsKCQkvLyBjb3V0PDwiWWF5IVxuIjsKCQkvL2ZpbGxpbmcgdXAgdGhlIHNwYXJzZSB0YWJsZSAKCQlmKGksMSxMRy0xKQoJCXsKCQkJZihqLDEsbikKCQkJewoJCQkJaWYgKFBbaS0xXVtqXSE9LTEpCgkJCQl7CQoJCQkJCVBbaV1bal09UFtpLTFdW1BbaS0xXVtqXV07CgkJCQkJbWF4aVtpXVtqXT1tYXgobWF4aVtpLTFdW2pdLG1heGlbaS0xXVtQW2ktMV1bal1dKTsKCQkJCX0KCQkJfQoJCX0KCgkJaW50IHE7CgkJY2luPj5xOwoJCXdoaWxlIChxLS0pCgkJewoJCQljaW4+PnU+PnY7CgkJCWludCBsY2E9TENBKHUsdik7CgkJCWludCBtcGF0aDE9SU5UX01JTixtcGF0aDI9SU5UX01JTjsKCQkJZm9yIChpbnQgaT1MRy0xO2k+PTA7aS0tKQoJCQl7CgkJCQlpZiAobHZsW3VdLSgxPDxpKSA+PSBsdmxbbGNhXSkKCQkJCXsKCQkJCQltcGF0aDE9bWF4KG1wYXRoMSxtYXhpW2ldW3VdKTsKCQkJCQl1PVBbaV1bdV07CgkJCQl9CgkJCX0KCQkJZm9yIChpbnQgaT1MRy0xO2k+PTA7aS0tKQoJCQl7CgkJCQlpZiAobHZsW3ZdLSgxPDxpKSA+PSBsdmxbbGNhXSkKCQkJCXsKCQkJCQltcGF0aDI9bWF4KG1wYXRoMixtYXhpW2ldW3ZdKTsKCQkJCQl2PVBbaV1bdl07CgkJCQl9CgkJCX0KCgkJCS8vIGlmIChtcGF0aDE9PUlOVF9NSU4pCgkJCS8vIAljb3V0PDxtcGF0aDI8PGVuZGw7CgkJCS8vIGVsc2UgaWYgKG1wYXRoMj09SU5UX01JTikKCQkJLy8gCWNvdXQ8PG1wYXRoMTw8ZW5kbDsKCQkJLy8gZWxzZQoJCQljb3V0PDxtYXgobXBhdGgxLG1wYXRoMik8PGVuZGw7CgkJfQoJCWNpbj4+bjsKCX0KCgoKCXJldHVybiAwOwp9