波特金(Potemkin)以其匆忙建造以取悦来访政要的“假村庄”而闻名。他会带领代表团沿着领地内的一条闭合路线行进,在每个合适的地点,一队演员会搭建一个移动村庄并假装是当地居民。一旦代表团离开,演员们就会拆除村庄,并赶在代表团到达下一个合适地点之前将其重新搭建好。
当然,选择正确的路线需要一些思考。代表团成员偶尔会离开计划路线进行短途考察,如果他们回到之前访问过的地点,骗局就会被拆穿,因为他们会看到一个本应有村庄的地方现在空空如也。此外,为了达到良好的印象,路线必须经过至少四个地点。
给定波特金领地的地图,包括合适地点之间双向直达道路的列表(直达道路之间的交叉点由复杂的立交系统处理,使得政要无法在除端点以外的任何点从一条道路切换到另一条道路)。波特金王子要求你找到一个地点序列 $s_1, \dots, s_m$,满足:
- $m \geq 4$;
- 所有地点互不相同(即对于所有 $i \neq j$,有 $s_i \neq s_j$);
- 对于 $i = 1, \dots, m-1$,$s_i$ 与 $s_{i+1}$ 由一条直达道路相连,且 $s_m$ 与 $s_1$ 由一条直达道路相连;
- 序列中的地点之间没有其他直达道路(即对于所有 $i < j$,若 $j \neq i+1$ 且不满足 ($i=1$ 且 $j=m$),则地点 $s_i$ 和 $s_j$ 之间没有直达道路)。
输入格式
从标准输入读取地图描述。输入的第一行包含两个非负整数 $N$ 和 $R$ ($0 \leq N \leq 1\,000$,$0 \leq R \leq 100\,000$),分别表示地点数量和直达道路数量。接下来的 $R$ 行中,第 $i$ 行包含两个不同的正整数 $a_i$ 和 $b_i$ ($1 \leq a_i, b_i \leq N$),表示地点 $a_i$ 和 $b_i$ 之间有一条直达道路。每两个地点之间最多只有一条道路。
输出格式
向标准输出写入一个由空格分隔的互不相同的整数序列 $s_1, \dots, s_m$,描述题目要求的一条路线(如果存在多个有效序列,输出其中任意一个)。如果不存在这样的序列,则输出 “no”。
子任务
共有 10 组测试数据,每组 10 分。各组测试数据的 $N$ 和 $R$ 上限如下:
| 组别 | 1–3 | 4–5 | 6–7 | 8–10 |
|---|---|---|---|---|
| $N$ 的上限 | 10 | 100 | 300 | 1\,000 |
| $R$ 的上限 | 45 | 1\,000 | 20\,000 | 100\,000 |
样例
样例输入 1
5 6 1 2 1 3 2 3 4 3 5 2 4 5
样例输出 1
2 3 4 5
样例输入 2
4 5 1 2 2 3 3 4 4 1 1 3
样例输出 2
no