섬 여행

각 정점에 높이가 있는 무방향 그래프에서 질의 (A, K)마다 A에서 정확히 K번 이동해 도달할 수 있는 정점 중 최소 높이를 구하고, 불가능하면 -1을 출력한다.

보통6그래프동적 계획법BFS행렬면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

여행이 취미이자 특기인 정우는 이번에 여러 섬을 돌아보기로 했다. 목적지로 잡은 섬은 모두 NN개이고, 섬 사이에는 양방향으로 건널 수 있는 다리가 MM개 놓여 있다. 다리를 한 번 건너는 것을 이동 한 번으로 센다.

지도에 적힌 섬의 높이를 보던 정우는 이런 궁금증이 생겼다.

"어떤 섬 AA에서 출발해 다리를 정확히 KK번 건넜을 때, 도착할 수 있는 섬 중에서 가장 낮은 섬의 높이는 얼마일까?"

같은 다리를 여러 번 건너도 되고, 이미 지나온 섬에 다시 들러도 된다. 정우의 질의마다 답을 구해 주자.

입력

첫째 줄에 섬의 수 NN과 다리의 수 MM이 공백으로 구분되어 주어진다. (2N1002 \le N \le 100, 1M100001 \le M \le 10000)

둘째 줄에 1번 섬부터 NN번 섬까지의 높이 HH가 공백으로 구분되어 주어진다. (0H100000 \le H \le 10000)

다음 MM개의 줄에 다리 하나를 나타내는 두 정수 XXYY가 공백으로 구분되어 주어진다. (1X,YN1 \le X, Y \le N) XX번 섬과 YY번 섬이 양방향 다리로 이어져 있다는 뜻이다. XXYY가 같을 수 있고, 같은 두 섬을 잇는 다리가 여러 번 주어질 수도 있다.

그다음 줄에 질의의 수 TT가 주어진다. (1T100001 \le T \le 10000)

이어지는 TT개의 줄에 출발하는 섬의 번호 AA와 건너야 하는 다리의 수 KK가 공백으로 구분되어 주어진다. (1AN1 \le A \le N, 1K5001 \le K \le 500)

출력

질의마다 한 줄에 하나씩, AA번 섬에서 출발해 다리를 정확히 KK번 건넜을 때 도착할 수 있는 섬의 높이 중 가장 낮은 값을 출력한다.

정확히 KK번 건너서 도착할 수 있는 섬이 하나도 없으면 1-1을 출력한다.