신나는 여행
시간 제한2초메모리 제한1024 MB
트리 위에서 날마다 방문할 도시 순서가 주어질 때, 같은 도시를 두 번 지나지 않도록 필요한 요트 이용 횟수의 최솟값을 구합니다.
문제
IODS 팀 선발을 마친 뒤, 쉬기 위해 새로운 나라로 여행을 가려고 한다. 이 나라에는 개의 도시가 있으며, 개의 양방향 도로로 연결되어 있다. 임의의 두 도시 사이에는 유일한 단순 경로가 있다.
앞으로 일 동안 이 나라를 둘러보려고 한다. 각 날마다 차례대로 방문할 도시 개 가 정해져 있다. 하루를 시작할 때 출발 도시를 아무 도시로나 고를 수 있고, 그다음 , , ..., 마지막으로 에 도착하면 그날의 여행이 끝난다.
여행을 더 재미있게 하려고, 하루 동안 같은 도시를 두 번 이상 지나지 않으려고 한다. 어느 순간에든 현재 도시에서 도로를 따라 다른 도시로 갈 수도 있고, 요트를 타고 아무 도시로나 갈 수도 있다.
각 날의 여행마다, 같은 도시를 두 번 지나지 않도록 하면서 필요한 최소 요트 탑승 횟수를 구하려고 한다. 각 날의 여행은 서로 독립적이다. 즉, 전날 지나간 도시라도 다음 날 다시 지나갈 수 있다.
입력
첫 줄에 두 정수 과 이 주어진다 (, ).
다음 개 줄에는 각각 두 정수 , (, )가 주어지며, 이는 정점 와 사이에 양방향 간선이 있다는 뜻이다. 주어진 그래프는 연결되어 있다고 보장된다.
다음 개 줄에는 질의가 형식으로 주어진다. 이고, 인 모든 , 에 대해 임이 보장된다.
한 테스트 케이스에서 의 합은 을 넘지 않는다.
출력
각 날마다 한 줄에 필요한 요트 탑승 횟수의 최솟값을 정수 하나로 출력한다.
힌트

첫 번째 샘플 테스트 케이스에 해당하는 그림이다

두 번째 샘플 테스트 케이스에 해당하는 그림이다