eolymp
bolt
Try our new interface for solving problems
Problems

Хакеры

Хакеры

Time limit 2 seconds
Memory limit 256 MiB

В сети компании MelkosoftN серверов, использующих операционную систему Losedows. Некоторые из них соединены двусторонними каналами связи. Сеть называется надёжной, если между двумя любыми различными серверами найдется какой-либо маршрут, состоящий из одного или нескольких каналов связи. Однако, сеть, в которой вообще нет серверов, надёжной не считается.

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

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

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

Input data

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

Output data

В первой строке выведите минимальное число серверов K, которое необходимо вырубить, чтобы все оставшиеся повисли из-за ошибки в Losedows. Во второй строке выведите номера серверов, которые необходимо вырубить, в произвольном порядке. Если оптимальных решений несколько, разрешается выводить любое. Если исходная сетьMelkosoft ненадёжна, выведите число 0.

Examples

Input example #1
1 0
Output example #1
1
1