어떤 회사가 전 세계에 N대의 서버를 운영한다. 각 서버는 처음에 서로 다른 정보 조각을 하나씩 가지고 있다. 즉 서버 i는 정보 i를 가지며, 같은 조각을 처음부터 가진 서버는 없다.
회사는 정보를 공유하기 위해 서버들을 통신 회선으로 연결한다. 현재 활성화된 회선을 통해 두 서버가 서로에게 도달할 수 있게 되면 두 서버는 동기화된다. 동기화가 끝나면 같은 연결 그룹에 속한 모든 서버는 그 그룹의 어떤 서버가 가지고 있던 조각 전체의 합집합을 갖는다. 다시 말해, (직접 또는 간접으로) 연결된 서버들은 항상 완전히 같은 조각 집합을 공유한다.
비용을 줄이기 위해 회선은 총 N−1개만 설치하며, 이 회선들이 모두 동시에 활성화되면 서버들은 하나의 트리를 이룬다(임의의 두 서버 사이에 단순 경로가 정확히 하나 존재한다).
시각 0에는 어떤 회선도 활성화되어 있지 않다. 일부 회선은 열악한 환경을 지나기 때문에 끊어졌다가 다시 복구될 수 있다. 각 시각 j(1≤j≤M)에는 정확히 하나의 회선 상태가 바뀐다. 그 회선이 현재 비활성이면 활성화되고, 활성이면 비활성화된다. 시각 j의 변경으로 발생한 모든 동기화는 시각 j+1 이전에 완료된다.
중요: 정보는 절대 사라지지 않는다. 활성 회선이 끊겨 하나의 그룹이 둘로 나뉘어도 나뉜 양쪽은 각자 이미 가지고 있던 조각을 그대로 유지한다.
M번의 변경을 모두 적용한 뒤, 지정된 여러 서버 각각에 대해 그 서버가 가진 서로 다른 정보 조각의 개수를 구하라.
입력은 표준 입력으로 다음 형식으로 주어진다.
Q개의 줄을 출력한다. k번째 줄에는 모든 M번의 변경이 끝난 뒤 서버 Ck가 가진 서로 다른 정보 조각의 개수를 정수 하나로 출력한다.
서버가 5대인 첫 번째 예제를 생각하자. 처음에 서버 i는 조각 i를 가진다(1≤i≤5).
결국 서버 1, 4, 5는 각각 3개, 5개, 4개의 서로 다른 조각을 가지며, 이는 첫 번째 예제의 출력과 일치한다.