eolymp
bolt
Спробуйте наш новий інтерфейс для відправки розв'язків
Задачі

Хакери

Хакери

Ліміт часу 2 секунди
Ліміт використання пам'яті 256 MiB

У мережі компанії Melkosoft N серверів, які використовують операційну систему Losedows. Деякі з них з'єднані двосторонніми каналами зв'язку. Мережа називається надійною, якщо між двома довільними різними серверами знайдеться який-небудь маршрут, що складається з одного чи декількох каналів зв'язку. Проте мережа, у якій взагалі немає серверів, надійною не вважається.

Наші доблестні хакери хочуть наглядно продемонструвати компанії Melkosoft помилку в останній версії Losedows (звичайно, без згоди компанії Melkosoft). А саме, якщо в мережі вирубити декілька серверів таким чином, що частина мережі, що залишилась, стане ненадійною, то усі сервери мережі, що залишились, різко повисають.

Так як бомбардування сервера битими пакетами таким чином, щоб він вирубився - заняття вкрай важке, то хакери хочуть вирубити мінімально можливе число серверів таким чином, щоб усі інші повисли.

Напишіть програму, яка визначає мінімальну множину серверів, які потрібно бомбардувати.

Вхідні дані

У першому рядкуе задано два числа N та M (1N50, 0M100). Далі йде M рядків, які описують пари серверів, з'єднаних каналами зв'язку. Кожен канал описується рядком з двох чисел u_iv_i, де 1u_i, v_iN - номери серверів, з'єднаних i-м каналом. Два сервери можуть бути з'єднані більше ніж одним каналом.

Вихідні дані

У першому рядку виведіть мінімальне число серверів K, які необхідно вирубити, щоб усі що залишились повисли із-за помилки в Losedows. У другому рядку виведіть номери серверів, які необхідно вирубити, у довільному порядку. Якщо оптимальних розв'яєків декілька, дозволяється вивести довільний. Якщо початкова мережа Melkosoft ненадійна, виведіть число 0.

Приклад

Вхідні дані #1
1 0
Вихідні дані #1
1
1