아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

순환 관광 코스

시간 제한3초메모리 제한256 MB

요약
모든 순환 투어에 각 버스 회사의 도로가 같은 수만큼 포함되도록 도로를 배분할 수 있는 회사 수를 모두 구합니다.
난이도

어려움10점 중 8점

유형
그래프, DFS, 정수론
정답자
아직 제출이 없습니다

문제

아르카 카라니아 산 국립공원이 관광객을 맞이한다. 공원에는 둘러볼 만한 명소가 여럿 있고, 두 명소를 잇는 도로가 놓여 있다. 관리위원회는 관광객이 버스를 타고 명소를 도는 순환 관광 코스를 정리해 두었다. 순환 코스는 어떤 명소에서 출발해 다른 명소를 한 번씩만 지난 뒤 출발한 명소로 돌아온다. 코스마다 출발 명소는 다를 수 있다. 코스 하나가 들르는 명소는 3곳 이상이다. 공원에는 순환 코스가 적어도 하나 있다.

관리위원회는 도로 하나의 버스 운행을 회사 한 곳에 통째로 맡기기로 했다. 특정 회사를 밀어준다는 말을 듣고 싶지 않아서, 공원에서 가능한 모든 순환 코스마다 회사가 맡은 도로의 수가 정확히 같기를 바란다. 이런 배정이 어렵다는 것도 알고 있다. 그래서 회사가 몇 곳일 때 도로를 제대로 배정할 수 있는지 알고 싶어 한다.

명소가 4곳이고 도로가 1-2, 2-3, 3-4, 1-4, 1-3인 공원을 보자. 순환 코스는 1-2-3-1, 1-3-4-1, 1-2-3-4-1로 모두 셋이다. 도로 1-3을 맡은 회사는 코스 1-2-3-4-1에서도 도로를 하나 맡아야 하니, 그 회사가 2-3을 맡았다고 하자. 그러면 이 회사는 코스 1-2-3-1의 도로 3개 중 2개를 맡게 되고, 다른 어떤 회사도 같은 수를 맡을 수 없다. 따라서 회사는 한 곳뿐이어야 한다. 반대로 순환 코스가 하나뿐인 공원이라면 그 코스의 도로를 회사들에 고르게 나눠 주기만 하면 된다.

명소 4곳과 도로 5개로 이루어진 예시 공원

입력

첫 줄에 명소의 수 nn (1≤n≤20001 \le n \le 2000)과 도로의 수 mm (1≤m≤20001 \le m \le 2000)이 주어진다. 다음 mm개의 줄에는 각각 두 정수 aia_i와 bib_i (1≤ai<bi≤n1 \le a_i < b_i \le n)가 주어진다. 명소 aia_i와 bib_i가 양방향 도로로 이어져 있다는 뜻이다. 같은 명소 쌍이 두 번 주어지지는 않는다.

출력

원하는 방식으로 도로를 kk개 회사에 배정할 수 있는 정수 kk를 모두 구해, 오름차순으로 한 줄에 공백 하나로 구분해 출력한다.

예제2

  1. 예제 1

    입력
    4 5
    1 2
    2 3
    3 4
    1 4
    1 3
    
    예상 출력
    1
    
  2. 예제 2

    입력
    6 6
    1 2
    2 3
    1 3
    1 4
    2 5
    3 6
    
    예상 출력
    1 3