#include<bits/stdc++.h> usingnamespace std; #define ll long long typedef pair<int, int> pii; constint INF = 0x3f3f3f3f; constint maxn = 1e5 + 10; int n, m, Q; structedge { int v, w; }; vector<edge>G[maxn]; int d[maxn]; int vis[maxn]; voidbfs(int s){ queue<int>que; que.push(s); while (!que.empty()) { int u = que.front(); que.pop(); if (vis[u])continue; vis[u] = 1; for (edge e : G[u]) { int v = e.v, w = e.w; if (!vis[v]) { d[v] = (d[u] ^ w); que.push(v); } } } } intmain(){ scanf("%d%d%d", &n, &m, &Q); for (int i = 0; i < m; i++) { int u, v, w; scanf("%d%d%d", &u, &v, &w); G[u].push_back(edge{ v,w }); G[v].push_back(edge{ u,w }); } bfs(1); for (int i = 0; i < Q; i++) { int u, v; scanf("%d%d", &u, &v); printf("%d\n", d[u] ^ d[v]); } return0; }