어둠 속의 미로
시간 제한2초메모리 제한512 MB
각 방의 이웃이 시계 방향으로 주어진 평면 미로에서, 시작 방마다 오른손 법칙으로 벽을 따라 걷다가 처음 시작 방으로 돌아올 때까지 지나는 최대 복도 수를 구한다.
문제
방 개를 복도로 이어 만든 미로가 있다. 방에는 번부터 번까지 번호가 붙어 있고, 방은 모두 원 모양이다. 복도는 다음 조건을 만족한다.
- 복도 하나는 서로 다른 두 방을 잇는다.
- 같은 방 쌍을 잇는 복도가 둘 이상 있는 일은 없다.
- 모든 방에는 복도가 적어도 하나 이어져 있다.
미로 안은 불이 모두 꺼져 있어서 자신이 어디에 있는지 볼 수 없다.
이 미로를 지나는 한 가지 방법은 출발한 방의 벽 어느 지점에 오른손을 대고, 손을 벽에서 떼지 않은 채 복도와 다른 방을 지나 계속 앞으로 걷는 것이다. 이렇게 걸으면 결국 출발한 방으로 돌아온다. 출발한 방에서 오른손을 어디에 대는지에 따라 처음 지나는 복도가 정해지므로, 걷는 경로도 달라진다.
미로 구조가 주어지면 질의 개에 답해야 한다. 각 질의는 출발할 방 를 하나 지정한다. 방 에서 출발해 오른손을 벽에 댄 채 걷다가 방 로 처음 되돌아올 때까지 지나는 복도 개수의 최댓값을 구하라.
입력
첫째 줄에 정수 이 주어진다. ()
다음 개 줄에는 미로 구조가 주어진다. 그중 번째 줄에는 방 에 이어진 복도의 개수 와 그 복도가 이어지는 방 번호 가 주어진다. 방 번호는 방 에서 본 시계 방향 순서로 나열된다.
예를 들어 방 의 줄이 3 4 2 7이면 방 에는 복도가 3개 있고, 각각 방 4, 방 2, 방 7로 이어진다. 시계 방향 순서로 적혀 있으므로 아래 그림과 같은 배치가 된다.

다음 줄에 정수 가 주어진다. ()
마지막 개 줄에는 질의할 출발 방 번호 가 한 줄에 하나씩 주어진다. () 같은 방 번호가 두 번 주어지는 일은 없다.
미로에 있는 복도의 총개수를 이라 하면 은 모든 를 더한 값의 절반이다. 은 을 넘지 않는다.
출력
질의가 주어진 순서대로 개 줄에 답을 출력한다. 번째 줄에는 번째 질의의 답, 곧 방 에서 출발해 방 로 처음 되돌아올 때까지 지나는 복도 개수의 최댓값을 출력한다.