Hackers
In the network of the company Melkosoft, there are N servers running the Losedows operating system. Some of these servers are linked by bidirectional communication channels. The network is deemed reliable if there is at least one route, consisting of one or more communication channels, between any two distinct servers. However, a network with no servers is not considered reliable.
A group of determined hackers aims to expose a vulnerability in the latest version of Losedows to the company Melkosoft (without the company's consent, of course). Their plan is to shut down a few servers in such a way that the remaining network becomes unreliable, causing all other servers to suddenly hang.
Since overwhelming a server with corrupted packets to shut it down is a challenging task, the hackers want to minimize the number of servers they need to disable to achieve this effect.
Write a program to determine the smallest set of servers that need to be shut down.
Input
The first line contains two integers N and M (1 ≤ N ≤ 50, 0 ≤ M ≤ 100). The following M lines each describe a pair of servers connected by a communication channel. Each channel is specified by a line with two integers u_i v_i, where 1 ≤ u_i, v_i ≤ N, representing the servers connected by the i-th channel. It is possible for two servers to be connected by more than one channel.
Output
On the first line, output the minimum number of servers K that need to be shut down so that all remaining servers hang due to the flaw in Losedows. On the second line, list the numbers of the servers that need to be shut down, in any order. If there are multiple optimal solutions, any one of them can be provided. If the initial Melkosoft network is already unreliable, output the number 0.