회사에는 서로 연결되지 않은 컴퓨터 네트워크가 여러 개 있다. 케이블 전문가의 조수인 당신은 새 케이블을 놓아 모든 네트워크를 하나로 이어야 한다. 이미 놓여 있는 케이블은 옮길 수도 없고 걷어낼 수도 없다.
사장은 새로 쓰는 케이블 수를 최소로 하라고 했다. 케이블은 광케이블이고 비싼 부품은 커넥터라서 케이블 길이는 상관없다. 사장이 케이블 낭비에 워낙 까다로운 탓에 기존 네트워크도 이미 케이블을 최소로만 쓰고 있다. 즉 기존 케이블에는 순환이 없다.
네트워크에서 패킷의 지연 시간은 패킷이 거치는 홉 수에 비례한다. 홉은 케이블 하나를 지나가는 것을 뜻한다. 새 케이블을 최소 개수만 놓아 모든 컴퓨터가 서로 연결되게 하고, 그런 방법 중에서 두 컴퓨터 사이에 필요한 홉 수의 최댓값이 가장 작아지게 하라. 그때의 최댓값을 구한다.
첫째 줄에 컴퓨터의 수 c와 이미 놓인 케이블의 수 ℓ이 주어진다 (1≤c≤105, 0≤ℓ≤c−1).
다음 ℓ개 줄에는 케이블이 잇는 두 컴퓨터의 번호 a와 b가 주어진다 (0≤a,b≤c−1, a=b). 컴퓨터의 번호는 0부터 c−1까지이고 서로 다르다. 기존 케이블로는 순환이 생기지 않는다.
새 케이블을 최소 개수만 놓아 모든 컴퓨터를 하나로 이었을 때, 두 컴퓨터 사이의 홉 수의 최댓값이 가질 수 있는 가장 작은 값을 출력한다.