개의 정점으로 이루어진 트리가 있다. 이 트리의 각 정점에는 이상 이하인 숫자가 하나 쓰여 있다. 트리의 각 정점은 번부터 번까지 번호가 매겨져 있다. 아래 그림이 위 조건을 만족하는 트리의 예이다. 각 정점 안에 있는 수는 정점의 번호, 정점 위의 숫자는 정점에 쓰인 숫자이다.
명의 사람이 있다. 각 사람은 번부터 번까지 번호가 매겨져 있다. 각 사람들은 트리에서 출발 정점과 도착 정점을 선택한다. 출발 정점에서 도착 정점을 잇는 경로에 있는 정점들에 쓰인 숫자를 차례대로 읽으면 수를 만들 수 있다. 예를 들어, 번 정점에서 출발하여 번 정점으로 도착하는 경로는 차례대로 번 정점, 번 정점, 번 정점을 방문하게 되고, , , 를 차례로 읽어 가 만들어진다.
명의 사람들이 만드는 개의 수를 오름차순으로 정렬하여, 사람들에게 등수를 매기려고 한다. 만약 만든 수가 동일한 경우, 번호가 낮은 사람이 앞에 온다.
트리의 정보, 각 사람이 선택한 출발 정점과 도착 정점이 주어졌을 때, 사람의 번호를 등수 순서대로 출력하는 프로그램을 작성하라.
첫 줄에 정점의 수를 나타내는 정수 과 사람의 수를 나타내는 정수 이 공백으로 구분되어 주어진다. ( )
그다음 줄에 개의 숫자 가 공백으로 구분되어 주어진다. 이는 번 정점에 적혀있는 숫자가 임을 의미한다. ()
이어지는 개의 줄의 번째 줄에는 번째 간선의 정보를 나타내는 두 정수 와 가 공백으로 구분되어 주어진다. 이는 번 정점과 번 정점을 잇는 간선을 의미한다. ()
이어지는 개의 줄의 번째 줄에는 번 사람이 선택한 출발 정점의 번호 와 도착 정점의 번호 가 공백으로 구분되어 주어진다. ( )
개의 줄에 걸쳐 답을 출력한다. 번째 줄에 번째 순위를 기록한 사람의 번호를 출력한다.
6 6 2 1 2 3 1 2 1 2 2 3 2 4 4 5 4 6 1 3 3 1 1 6 5 1 2 4 4 5
5 6 1 2 4 3
5 3 1 5 7 3 2 1 2 2 3 3 4 4 5 1 5 3 5 2 4
3 2 1
입력 예제 1에서, 각 사람이 만든 수는 , , , , , 이며, 각 사람들의 등수는 차례로 , , , , , 이 된다. 1등은 번, 2등은 번, 3등은 번, 4등은 번, 5등은 번, 6등은 번이 되므로 출력 결과는 이 된다.
입력 케이스들은 다음과 같은 종류로 구별되며, 한 종류의 케이스를 다 맞혀야 그 종류에 배정된 점수를 받을 수 있다.
종류 1: 4점
종류 2: 11점
종류 3: 14점
가능한 모든 에 대해
종류 4: 21점
가능한 모든 에 대해
종류 5: 17점
종류 6: 33점
추가적인 제한 조건이 없음.