第 44 届国际大学生程序设计竞赛(ICPC 2020)全球总决赛将在俄罗斯莫斯科举行。为了庆祝这一年度盛会,主办方决定为所有 $n$ 名全球总决赛参赛选手举办一场欢迎派对,为了方便起见,选手编号为 $1$ 到 $n$。
派对将在一个大厅内举行。出于安全考虑,所有参赛者必须向工作人员出示证件并通过安检才能进入大厅。由于安检设备有限,主办方决定只开放一个入口,因此每次只能有一人进入大厅。
有些参赛者之间是朋友。共有 $m$ 对相互的友谊关系。不用说,有朋友在场派对会更有趣。当一名参赛者进入大厅时,如果他发现大厅里没有他的任何朋友,那么这名参赛者就会感到不开心,即使他的朋友稍后会进入大厅。因此,主办方的一个大问题是参赛者进入大厅的顺序,因为这决定了不开心参赛者的数量。你需要找到一个能使不开心参赛者数量最少的顺序。由于编号较小的参赛者更重要(例如 ICPC 主管可能是 1 号),如果存在多个这样的顺序,你需要找到字典序最小的一个,以便重要的参赛者先进入大厅。
请注意,如果参赛者 $a$ 和 $b$ 是朋友,且参赛者 $b$ 和 $c$ 是朋友,那么 $a$ 和 $c$ 不一定非要是朋友。
输入格式
输入包含多组测试数据。输入的第一行包含一个正整数 $T$,表示测试数据的组数。对于每组测试数据:
第一行包含两个整数 $n$ 和 $m$ ($1 \le n, m \le 10^6$),分别表示参赛者人数和友谊关系数量。
接下来的 $m$ 行,每行包含两个整数 $a$ 和 $b$ ($1 \le a, b \le n, a \neq b$),表示第 $a$ 位参赛者和第 $b$ 位参赛者是朋友。每对友谊关系在输入中仅描述一次。
保证所有测试数据的 $n$ 之和与 $m$ 之和均不超过 $10^6$。
输出格式
对于每组测试数据,第一行输出一个整数,表示不开心的参赛者的最小数量。第二行输出一个 $1$ 到 $n$ 的排列,数字之间用空格隔开,表示达到该最小数量且字典序最小的参赛者进入大厅的顺序。
对于两个序列 $P = p_1, p_2, \dots, p_n$ 和 $Q = q_1, q_2, \dots, q_n$,如果存在一个整数 $k$ ($1 \le k \le n$),使得对于所有 $1 \le i < k$ 都有 $p_i = q_i$,且 $p_k < q_k$,则称 $P$ 的字典序小于 $Q$。
请不要在每行末尾输出多余的空格,否则你的答案可能会被判为错误!
样例
输入 1
2 4 3 1 2 1 3 1 4 4 2 1 2 3 4
输出 1
1 1 2 3 4 2 1 2 3 4