#include using namespace std; using ll = long long; template using rpriority_queue = priority_queue, greater>; int main(){ int N, K, Q, u, v; cin >> N >> K >> Q; vector>> a(N); vector> b(K); vector ans(Q); vector>> tb(K); for(int i = 0; i < K; i++){ cin >> u >> v; b[i] = {--u, --v}; } for(int i = 0, l, r, x; i < Q; i++){ cin >> l >> r >> x; tb[--r].emplace_back(--l, --x, i); } for(int i = K - 1; i >= 0; i--){ tie(u, v) = b[i]; while(!a[u].empty() && a[u].top().first > i){ ans[a[u].top().second] = u; a[u].pop(); } while(!a[v].empty() && a[v].top().first > i){ ans[a[v].top().second] = v; a[v].pop(); } //swap(a[u], a[v]); for(auto &&tup:tb[i]){ int l, x, idx; tie(l, x, idx) = tup; a[x].emplace(l, idx); } swap(a[u], a[v]); } for(int i = 0; i < N; i++){ while(!a[i].empty()){ ans[a[i].top().second] = i; a[i].pop(); } } for(int i = 0; i < Q; i++){ cout << ans[i] + 1 << '\n'; } }