In the network of the company TechCorp, there are servers running the ServerOS operating system. Some of these servers are connected by bidirectional communication channels. The network is called reliable if, for any two distinct servers, there exists a route between them consisting of one or more communication channels. However, a network with no servers is not considered reliable.
Brave hackers want to demonstrate to TechCorp an error in the latest version of ServerOS (without the company's consent, of course). They plan to shut down some servers so that the remaining network becomes unreliable, causing all remaining servers to hang immediately.
Since bombarding a server with corrupted packets to shut it down is difficult, the hackers want to minimize the number of servers they need to disable so that all the remaining servers will hang.
Write a program to determine the smallest set of servers that need to be shut down.
The first line contains two integers and (1 \leq N \leq 50, 0 \leq M \leq 100). The following lines describe pairs of servers connected by a communication channel. Each channel is specified by a line with two integers u_i v_i, where 1 \leq u_i, v_i \leq N, which are the numbers of the servers connected by the -th channel. Two servers may be connected by more than one channel.
On the first line, print the minimum number of servers that need to be shut down so that all remaining servers hang due to the flaw in ServerOS. On the second line, print the numbers of the servers that need to be shut down in any order. If there are multiple optimal solutions, any of them can be printed. If the initial TechCorp network is already unreliable, print the number .
Example 1