#P16548. [Bapc2025]Homesick
[Bapc2025]Homesick
题目背景
公元前 225 年 8 月 25 日,你负责组织罗马“厌恶回头散步俱乐部”的年度公路旅行。
然而你很容易想家,因此希望旅行尽可能短。按照传统,队伍不能刚走过一条道路,就立刻沿同一条道路原路返回。
题目描述
给定一个无向简单图,顶点表示景点,道路表示无向边。
你需要规划一条旅行路线,满足:
- 从顶点 出发;
- 最终回到顶点 ;
- 至少访问一个其他顶点;
- 若某一步从 走到 ,下一步不能立刻从 沿同一条边回到 。
允许在路线中多次经过同一顶点或同一条道路,只要没有发生上述“立即原路返回”。
求经过道路数量最少的合法路线。

样例 2 中一条使用 6 条道路的合法路线,其中道路 1-4 被使用两次
输入格式
第一行包含两个整数 :
分别表示景点数量和道路数量。
接下来 行,每行包含两个整数 (),表示 与 之间有一条双向道路。
任意一对景点之间至多有一条道路。
输出格式
若不存在合法路线,输出:
impossible
否则,先输出一个整数 ,表示路线中依次访问的顶点数量,起点和终点的顶点 均计入其中。
随后输出 个顶点编号,表示访问顺序。
因此路线实际经过的道路数量为 。
若存在多条最短合法路线,输出任意一条。
样例 1
输入
6 7
1 2
2 3
1 3
1 4
4 5
5 6
1 6
输出
4
1 3 2 1
样例 2
输入
12 13
1 2
2 3
1 4
4 5
5 6
6 7
4 7
1 8
8 9
9 10
10 11
11 12
9 12
输出
7
1 4 5 6 7 4 1
样例 3
输入
3 2
1 2
2 3
输出
impossible
样例 4
输入
4 3
2 3
3 4
2 4
输出
impossible