# 部分点5 import sys from atcoder.dsu import DSU input = sys.stdin.readline N,M,Q = map(int, input().split()) A = list(map(int, input().split())) A = [x-1 for x in A] U = [0]*M V = [0]*M W = [0]*M B = [] for j in range(M): U[j],V[j],W[j] = map(int, input().split()) U[j]-=1 V[j]-=1 B.append((W[j],j)) B=sorted(B) S = [0]*Q C = [0]*Q for k in range(Q): S[k],C[k] = map(int,input().split()) S[k]-=1 ok = [M]*Q ng = [-1]*Q while True: mid = [[] for _ in range(M)] fin = True for k in range(Q): if C[k]==1: continue if (ok[k]-ng[k])>1: fin=False m=(ok[k]+ng[k])//2 mid[m].append(k) if fin: break uf = DSU(N) for j in range(M): t = B[j][1] uf.merge(U[t],V[t]) for k in mid[j]: if uf.size(S[k]) >= C[k]: ok[k]=j else: ng[k]=j for k in range(Q): # -1は制約上起こり得ない if C[k]==1: print(0) else: print(B[ok[k]][0])