케이블 네트워크의 여러 지점(site)이 케이블로 서로 연결되어 있습니다. 하나의 케이블은 서로 다른 두 지점을 연결하며, 같은 두 지점 사이에 여러 개의 케이블이 있을 수도 있습니다. 네트워크 안의 임의의 두 지점이 직접 또는 간접적으로 연결되어 있으면 그 네트워크는 연결되어 있다고 하고, 그렇지 않으면 분리되어 있다고 합니다. 네트워크의 안전 등급 $S$ 는 다음과 같이 정의됩니다.
예를 들어, 지점 $0, \dots, 4$ 로 이루어지고 케이블이 $(0,1)$(두 개), $(1,3)$, $(2,3)$(두 개), $(0,2)$, $(2,4)$(두 개)인 네트워크를 생각해 봅시다. 이 네트워크는 어떤 케이블 하나를 제거해도 연결된 상태를 유지하지만, 케이블 $(0,2)$와 $(1,3)$을 제거하면 분리됩니다. 또 다른 방법으로는 $(2,4)$ 케이블 두 개를 모두 제거하는 것이 있습니다. 따라서 이 네트워크의 안전 등급은 $S = 2$ 입니다.
여러 개의 데이터 집합을 읽어 각 데이터 집합이 나타내는 케이블 네트워크의 안전 등급을 계산하는 프로그램을 작성하세요.
각 데이터 집합은 두 정수로 시작합니다. 네트워크의 지점 수 $0 \le n \le 100$ 과 케이블 수 $0 \le m \le 1000$ 입니다. 이어서 $m$개의 데이터 쌍 $(u, v)$ 가 주어지며, $u < v$ 이고 $u$와 $v$는 지점 번호($0$부터 $n-1$까지의 정수)입니다. 쌍 $(u, v)$는 지점 $u$와 $v$를 연결하는 케이블을 나타냅니다. 쌍은 임의의 순서로 나타날 수 있습니다. 공백을 포함하지 않는 $(u, v)$ 쌍을 제외하면, 입력의 어디에나 공백이 자유롭게 나타날 수 있습니다. 입력은 파일의 끝(EOF)에서 종료되며, 입력 데이터는 항상 올바릅니다.
각 데이터 집합에 대해, 인코딩된 네트워크의 안전 등급을 한 줄의 시작 위치에 출력하세요.
예시에서 첫 번째 데이터 집합은 빈 네트워크를, 두 번째는 지점 2개와 케이블 1개로 이루어진 네트워크를, 세 번째는 지점 2개로 이루어진 분리된 네트워크를, 네 번째는 위에서 설명한 다섯 지점짜리 네트워크를 나타냅니다.