강아지 Пёсик
시간 제한3초메모리 제한1024 MB
연결된 그래프에서 단순 사이클이 최대 세 개일 때, 가장 긴 단순 사이클을 찾아 정점 번호를 순서대로 출력합니다.
문제
앨릭스가 키우는 강아지 Пёсик은 다른 강아지들처럼 공을 가지고 노는 것을 좋아한다. 이번에는 공 대신 금속 고리를 이어 만든 구조물이 생겼다. 각 고리는 다른 고리 몇 개와 연결될 수 있다. Пёсик은 당장 이걸로 놀고 싶어 한다. 그래서 고리 몇 개를 제거하고(0개일 수도 있음), 고리 사이의 연결 몇 개를 끊는다(0개일 수도 있음). 그 결과 각 고리가 정확히 이웃한 두 고리와만 연결된 닫힌 사슬이 남아야 한다. 사슬의 각 고리는 정확히 한 번씩 사용되어야 한다.
Пёсик은 만들어진 사슬이 최대한 길기를 바란다. 원래 구조에서 닫힌 사슬을 만드는 방법은 몇 가지뿐이며, 많아야 세 가지이다.
입력
첫 줄에 두 정수 과 (, )이 주어진다. 각각 고리의 개수와 고리 사이 연결의 개수이다. 이어지는 개의 줄에는 두 정수 와 ()가 주어지며, 고리 와 고리 가 연결되어 있음을 뜻한다.
자기 자신과 연결된 고리는 없고, 같은 두 고리가 두 번 이상 연결되는 경우도 없다. 구조에서 닫힌 사슬을 최소 하나 얻을 수 있음이 보장되며, 고리와 연결을 제거해서 닫힌 사슬이 남는 방법은 많아야 세 가지이다. 원래 구조는 연결되어 있다.
출력
첫 줄에 Пёсик이 얻을 수 있는 가장 긴 닫힌 사슬의 길이 를 출력한다. 둘째 줄에는 사슬에 있는 고리의 번호 를 개 출력한다.
모든 는 서로 달라야 한다. 고리 과 , 와 , , 과 , 그리고 와 은 원래 구조에서 연결되어 있어야 한다.