我们称一个无向图为平面图,如果存在一种将其画在平面上的方法,使得任意两条边除了端点外没有交点。例如,下图是一个平面图:
但下图不是一个平面图,因为可以证明,无论如何将其画在平面上,至少有两条边会产生非端点的交点:
对于一个平面图,它被边分割成若干个区域。例如,下面的平面图有 4 个区域(注意区域 1 是外部的无限大区域):
给定一个包含 $n$ 个顶点和 $m$ 条边的平面图。每个区域代表一个国家。你是设计师,想要在边上建造一些隧道,使得:从一个城市出发,可以通过经过隧道或经过城市到达任何其他城市(即:除非某条边上设有隧道,否则你不能穿过它)。例如,对于上图,你可以这样建造隧道:
在上图中,你可以通过经过隧道 1、穿过城市 1、经过隧道 3、穿过城市 4、最后经过隧道 2,从城市 2 到达城市 3。你可以验证从任何城市都可以到达其他任何城市。
你希望隧道数量尽可能少。请输出最少的隧道数量以及你建造隧道的边的编号。
输入格式
第一行包含一个整数 $T$ ($1 \le T \le 15$),表示测试用例的数量。
对于每个测试用例: 第一行包含两个整数 $n, m$ ($1 \le n \le 10^5, 0 \le m \le 2 \times 10^5$),分别表示顶点数和边数。 接下来 $m$ 行,第 $i$ 行包含两个整数 $u, v$ ($1 \le u, v \le n$),表示第 $i$ 条边的端点。第 $i$ 条边的编号为 $i$。
保证给定的图是一个平面图。但该图可能包含自环、重边,且图可能不连通。
输出格式
输出包含 $2T$ 行。
对于每个测试用例: 第一行包含一个整数 $f$,表示你必须建造的最少隧道数量。 第二行包含 $f$ 个用空格分隔的整数,表示建造隧道的边的编号。
如果对于固定的最少隧道数量,有多种建造隧道的方法,请输出字典序最小的答案。
样例
输入 1
1 5 7 1 1 1 2 1 3 3 4 3 4 2 4 2 5
输出 1
3 1 2 4