Jacob 正在学习图论。今天他了解到,有向图的拓扑排序是一种顶点的线性排序,使得对于每一条从顶点 $u$ 到顶点 $v$ 的有向边 $(u, v)$,$u$ 在排序中都出现在 $v$ 之前。
众所周知,拓扑排序仅存在于无环图中。但我们该如何将这一概念推广到任意图呢?
Jacob 提出了“半拓扑排序”的概念:图顶点的一种线性排序,使得图中至少一半的有向边 $(u, v)$ 满足 $u$ 在排序中出现在 $v$ 之前。
换句话说,如果图有 $m$ 条边,对于某种特定的排序,有 $k$ 条边满足上述条件,那么如果 $k \ge \lceil \frac{m}{2} \rceil$,该排序就被称为半拓扑排序。
请帮助 Jacob 找到给定图的任意一个半拓扑排序,或者报告不存在这样的排序。
输入格式
每个测试包含多个测试用例。第一行包含测试用例的数量 $t$ ($1 \le t \le 10^4$)。
接下来是各测试用例的描述。
每个测试用例的第一行包含两个整数 $n$ 和 $m$,分别表示图的顶点数和边数 ($2 \le n \le 10^5$; $1 \le m \le 2 \cdot 10^5$)。
接下来的 $m$ 行中,第 $i$ 行包含两个整数 $u_i$ 和 $v_i$,描述一条从顶点 $u_i$ 到顶点 $v_i$ 的有向边 ($1 \le u_i, v_i \le n$; $u_i \neq v_i$)。图中不包含重边:每条有向边 $(u, v)$ 最多出现一次。但是,允许同时存在边 $(u, v)$ 和 $(v, u)$。
保证所有测试用例的 $n$ 之和不超过 $10^5$,所有测试用例的 $m$ 之和不超过 $2 \cdot 10^5$。
输出格式
对于每个测试用例,如果不存在所需的半拓扑排序,则输出单个整数 $-1$。
否则,输出 $n$ 个不同的整数 $p_1, p_2, \dots, p_n$,描述给定图的排序 ($1 \le p_i \le n$)。在该列表中,至少有 $\lceil \frac{m}{2} \rceil$ 条边 $(u_i, v_i)$ 满足整数 $u_i$ 出现在整数 $v_i$ 之前。如果存在多个答案,输出其中任意一个即可。
样例
输入 1
2 3 3 1 2 2 3 3 1 5 6 4 2 2 1 4 3 1 4 3 2 3 5
输出 1
1 2 3 3 1 5 4 2