# 部分点2 import sys from collections import deque input = sys.stdin.readline N,M,Q = map(int, input().split()) A = list(map(int, input().split())) A = [x-1 for x in A] G = [[] for _ in range(N)] for i in range(M): u,v,w = map(int, input().split()) G[u-1].append((v-1,w)) G[v-1].append((u-1,w)) for i in range(Q): s,c = map(int, input().split()) s-=1 ok=10**9+1 ng=-1 while(ok-ng>1): D = (ok+ng)//2 visited = [0]*N flag = [0]*N visited[s]=True flag[A[s]]=True que = deque([s]) while que: m=que.popleft() for nex,w in G[m]: if ((w<=D) and visited[nex]==False): visited[nex]=True flag[A[nex]]=True que.append(nex) t=0 for l in range(N): if flag[l]: t+=1 if t>=c: ok=D else: ng=D if ok == 10**9+1: print(-1) else: print(ok)