추가 채점 서버

연결된 무방향 그래프가 주어질 때, 어떤 간선 하나가 끊겨도 모든 정점이 서버에 도달하도록 서버를 놓아야 하는 정점의 최소 개수를 첫 한 개를 뺀 나머지로 구한다.

어려움8그래프DFS완전 탐색구현아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

프로그래밍 대회를 여러 대회장에서 동시에 연다. 대회장은 양방향 회선으로 이어져 있고, 회선 하나는 서로 다른 두 대회장을 잇는다. 같은 두 대회장을 잇는 회선은 많아야 하나다. 참가자는 채점 서버에 풀이를 제출한다. 채점 서버는 대회장 한 곳에 놓이고, 어떤 대회장의 참가자는 그 대회장과 서버가 놓인 대회장이 살아 있는 회선으로 이어져 있을 때 그 서버를 쓸 수 있다.

참가자는 언제나 채점 서버를 적어도 하나 쓸 수 있어야 한다. 회선이 모두 정상이면 모든 대회장이 하나로 이어지므로 채점 서버 한 대로 충분하다. 반대로 모든 대회장에 채점 서버를 한 대씩 두면 회선이 전부 끊겨도 접근이 보장된다. 주최 측은 이 보장을 잃지 않으면서 채점 서버를 되도록 적게 돌리려고 한다.

이 회선망에는 확실한 성질이 하나 있다. 어느 순간이든 정확히 회선 하나가 끊겨 있고, 끊긴 회선으로는 양쪽 어느 방향으로도 통신이 가지 않는다. 어떤 회선이든 끊긴 회선이 될 수 있다. 주최 측은 회선 하나가 어느 것이 끊기더라도 모든 대회장이 채점 서버에 적어도 하나 닿도록 하는 최소 서버 수를 알고 싶다.

주최 측은 채점 서버를 적어도 한 대는 돌려야 한다는 것을 이미 안다. 그 한 대 말고 몇 대를 더 돌려야 하는지 구하라.

입력

첫 줄에 대회장 수 SS (2S1000002 \le S \le 100\,000)가 주어진다. 대회장 번호는 00부터 S1S-1까지다.

다음 SS줄에 00번 대회장부터 차례로 각 대회장을 설명한다. ii번 대회장의 줄은 정수 kik_i (0ki<S0 \le k_i < S)로 시작한다. kik_iii번 대회장에서 번호가 더 큰 대회장으로 이어지는 회선의 개수다. 이어서 그 회선이 닿는 대회장 번호 kik_i개가 오름차순으로 주어진다. 회선은 양방향이지만 번호가 작은 쪽 대회장의 줄에만 적힌다. 회선은 모두 합쳐 100000100\,000개 이하이고, 회선으로 모든 대회장이 하나로 이어져 있다.

출력

주최 측이 더 돌려야 하는 채점 서버의 최소 개수를 출력한다.