봄맞이 대청소
시간 제한1초메모리 제한128 MB
트리에 잎을 추가한 Q개의 변형마다, 모든 간선을 덮는 잎 쌍 경로 길이의 합을 최소로 구합니다. 불가능하면 -1을 출력합니다.
문제
이 트리는 개의 노드(1번부터 번까지)와 개의 간선으로 이루어져 있다. 간선에 먼지가 너무 많이 쌓여서 Flóra의 어머니가 이것들을 청소하기로 했다.
임의의 트리의 간선을 청소하는 방법은 다음 과정을 반복하는 것이다. 서로 다른 리프(leaf, 간선이 정확히 하나만 연결된 노드) 두 개를 고르고, 둘 사이 최단 경로에 있는 모든 간선을 청소한다. 경로의 간선 수가 개라면 이 경로를 청소하는 비용은 이다.
리프가 상하지 않도록 각 리프는 최대 한 번만 선택한다. 트리의 모든 간선이 청소되면 트리 청소가 끝난다. 비용은 청소한 모든 경로 비용의 합이다.
Flóra는 이 트리가 너무 작고 단순하다고 생각해서 개의 변형을 상상한다. 번째 변형에서는 원래 트리에 새 리프를 총 개 추가한다. 새 리프마다 원래 트리의 노드 하나를 골라 간선으로 연결한다. 이 과정에서 일부 노드는 리프가 아니게 될 수 있다.
개의 변형 각각에 대해 트리를 청소하는 데 필요한 최소 비용을 구한다. 모든 변형은 원래 트리에서 출발한다.
입력
첫 줄에 정수 과 가 주어진다.
이어지는 개의 줄에는 정수 와 가 주어지며, 이는 노드 와 가 간선으로 연결되어 있다는 뜻이다.
그다음 개의 줄에는 변형이 주어진다. 번째 줄의 첫 정수는 이고, 이어서 정수 개 가 나온다. 는 새 리프를 붙일 노드 번호이다. 같은 노드에 리프 여러 개를 붙일 수 있다.
출력
개의 줄을 출력한다. 번째 줄에는 번째 변형의 트리를 청소하는 데 필요한 최소 비용을 출력한다. 트리를 청소할 수 없으면 을 출력한다.
제한
모든 에 대해
에 대해
모든 변형의 모든 에 대해
힌트
다음 그림은 두 번째 변형을 나타낸다.

가능한 풀이는 리프 1과 6, A와 7, B와 3 사이의 경로를 청소하는 것이다.