from collections import defaultdict import heapq class UnionFind(): def __init__(self, n, A, queries): self.n = n self.parents = [-1] * n self.A = [set([i]) for i in A] self.queries = [[] for _ in range(n)] for s,c,idx in queries: heapq.heappush(self.queries[s], (c,idx)) self.ans = [-1] * len(queries) def find(self, x): if self.parents[x] < 0: return x else: self.parents[x] = self.find(self.parents[x]) return self.parents[x] def union(self, x, y, w): x = self.find(x) y = self.find(y) if x == y: return if self.parents[x] > self.parents[y]: x, y = y, x self.parents[x] += self.parents[y] self.parents[y] = x self.A[x] |= self.A[y] if(len(self.queries[x]) <= len(self.queries[y])): for i in self.queries[x]: heapq.heappush(self.queries[y], i) self.queries[x], self.queries[y] = self.queries[y], self.queries[x] else: for i in self.queries[y]: heapq.heappush(self.queries[x], i) while(self.queries[x] and self.queries[x][0][0] <= len(self.A[x])): c,idx = heapq.heappop(self.queries[x]) self.ans[idx] = w def size(self, x): return -self.parents[self.find(x)] def same(self, x, y): return self.find(x) == self.find(y) def members(self, x): root = self.find(x) return [i for i in range(self.n) if self.find(i) == root] def roots(self): return [i for i, x in enumerate(self.parents) if x < 0] def group_count(self): return len(self.roots()) def all_group_members(self): group_members = defaultdict(list) for member in range(self.n): group_members[self.find(member)].append(member) return group_members def __str__(self): return '\n'.join(f'{r}: {m}' for r, m in self.all_group_members().items()) N,M,Q = list(map(int,input().split())) A = list(map(int,input().split())) edge_list = [] for _ in range(M): u,v,w = list(map(int,input().split())) u -= 1;v -= 1 edge_list.append((u,v,w)) edge_list.sort(key=lambda x:x[2]) queries = [] for i in range(Q): s,c = list(map(int,input().split())) s -= 1 queries.append((s,c,i)) queries.sort(key=lambda x:x[1]) uf = UnionFind(N, A, queries) for u,v,w in edge_list: uf.union(u,v,w) ans = uf.ans[:] for s,c,idx in queries: if(c != 1):continue ans[idx] = 0 for i in ans: print(i)