给定一个包含 $N$ 个顶点和 $M$ 条边的无向连通图。顶点编号从 $1$ 到 $N$。你需要找到一个顶点子集 $S$,使得以下两个条件同时满足:
- $|S| \le \lceil \sqrt{N} \rceil$ —— $S$ 中的顶点数量应小于或等于 $\lceil \sqrt{N} \rceil$。
- 对于图中的每个顶点 $u$,都存在一个顶点 $v \in S$,使得 $dist(u, v) \le \lceil \sqrt{N} \rceil$。
如果不存在这样的子集,则输出 -1。
说明: $\lceil x \rceil$ 是大于或等于 $x$ 的最小整数。 $dist(u, v)$ 是从 $u$ 到 $v$ 的最短路径上的边数。
输入格式
第一行包含一个整数 $T$,表示测试用例的数量。 每个测试用例的第一行包含两个空格分隔的整数 $N$ 和 $M$,分别表示顶点数和边数。 接下来的 $M$ 行,每行包含两个空格分隔的整数 $u$ 和 $v$,表示 $u$ 和 $v$ 之间有一条边。 图中没有自环或重边。
数据范围
- $1 \le T \le 2 \cdot 10^4$。
- $1 \le N \le 2 \cdot 10^5$。
- $0 \le M \le 10^6$。
- $1 \le u, v \le N$。
- 所有测试用例的 $N$ 之和不超过 $2 \cdot 10^5$。
- 所有测试用例的 $M$ 之和不超过 $10^6$。
- 图是连通的。
输出格式
对于每个测试用例: 如果不存在有效的子集,则在新的一行中输出 -1。 如果存在子集 $S$,则在新的一行中输出该子集的大小。在下一行中输出 $|S|$ 个空格分隔的互不相同的顶点,顺序不限。如果存在多个有效的子集,输出其中任意一个即可。
样例
样例输入 1
2 4 3 1 2 2 3 3 4 6 7 1 2 2 3 3 1 1 4 4 5 5 6 6 4
样例输出 1
1 2 3 5 2 6
说明
- 对于第一个测试用例,$\lceil \sqrt{4} \rceil = 2$。有效的子集包括 $\{2\}, \{3\}, \{1, 2\}, \{1, 3\}, \{1, 4\}, \{2, 3\}, \{2, 4\}, \{3, 4\}$。可以输出其中任意一个。
- 对于第二个测试用例,$\lceil \sqrt{6} \rceil = 3$。有效子集的一个例子是 $\{2, 5, 6\}$。