#agc013b. [agc013_b]Hamiltonish Path

[agc013_b]Hamiltonish Path

题目描述

给定一个连通的无向简单图,它有 NN 个顶点和 MM 条边。顶点编号为 11NN,边编号为 11MM。边 ii 连接顶点 AiA_iBiB_i。你的任务是找到满足以下条件的路径:

  • 路径经过两个或更多顶点。
  • 路径不重复经过同一个顶点。
  • 路径中始终包含与路径的端点之一直接相连的顶点。

可以证明这样的路径总是存在的。而且,如果有多个解决方案,则任何一个都将被接受。

约束条件

  • 2N1052 \leq N \leq 10^5
  • 1M1051 \leq M \leq 10^5
  • 1Ai<BiN1 \leq A_i < B_i \leq N
  • 给定的图是连通且简单的(也就是说,对于每对顶点,至多存在一条直接连接它们的边)。

输入

从标准输入读入输入数据,具体格式如下:

NN MM A1A_1 B1B_1 A2A_2 B2B_2 :: AMA_M BMB_M

输出

找到一个满足条件的路径,并按照以下格式打印。第一行打印路径中包含的顶点数。第二行按照路径中顶点出现的顺序,打印一个以空格分隔的顶点索引列表。

示例输入 1

5 6
1 3
1 4
2 3
1 5
3 5
2 4

示例输出 1

4
2 3 1 4

与顶点 22 直接相连的有两个顶点:顶点 33 和顶点 44。与顶点 44 直接相连的也有两个顶点:顶点 11 和顶点 22。因此,路径 22331144 满足条件。

示例输入 2

7 8
1 2
2 3
3 4
4 5
5 6
6 7
3 5
2 6

示例输出 2

7
1 2 3 4 5 6 7