#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10;
int n,m,u,v,w,dis[N];
vector<int>g[N],a[N];
void dfs(int node,int fa){
for(int i=0;i<g[node].size();i++){
int y=g[node][i];
if(y==fa){
dis[node]=dis[fa] xor a[node][i];
return;
}
else
dfs(y,node);
}
}
int main(){
cin>>n;
for(int i=1;i<n;i++){
cin>>u>>v>>w;
g[u].push_back(v);
g[v].push_back(u);
a[u].push_back(w);
a[v].push_back(w);
}
dfs(1,0);
cin>>m;
for(int i=1;i<=m;i++){
cin>>u>>v;
cout<<(dis[u] xor dis[v])<<endl;
}
return 0;
}