30080 - Baltazar

通过次数

1

提交次数

1

时间限制 : 1 秒
内存限制 : 128 MB

Baltazar 准备去度假。他现在在 Baltazargrad,正想去 Primosten 旅游。为了抵达那里,他需要穿过许多个城市。一共有 n 个城市,被 m 条双向道路所联接。Baltazargrad 编号为 1,Primosten 编号为 n

Baltazar 不确定从 Baltazargrad 去 Primosten 的路线,所以他将会使用 GPS,这会指引他以最短路线抵达。

但 Baltazar 真的很爱旅游,而且他可以将魔法药水使用在任何一条路上(即使他没有经过),从而将路的长度增长 2 千米。但他仅能使用一次药水。

不久他意识到,他必须在中午之前在 Primosten 的 Zora 旅馆入住。所以他不能过分增加最短路的总长度。他现在想知道,一共有多少条路可以让他使用药水,使得最短路的长度恰好增加 1 千米。

输入

多组数据。

第一行一个整数 t,表示数据组数。

接下来对于每组数据,第一行两个整数 n, m,分别表示城市的数量和城市之间道路的数量。

接下来的 m 行,每行三个整数 a_i, b_i, w_i,表示一条连接城市 a_i, b_i 且长度为 w_i 的道路。两个城市间最多只有一条道路。

保证所有城市是相互联通的。也就是说,任何一对城市,都有一条相互可达的路径,但不一定是直接相连。

保证所有数据的 n, m 各自之和均不超过 300000

输出

第一行输出一个整数 c,表示 Baltazar 可以使用魔法药水的道路数量。

接下来一行 c 个整数,以编号升序输出所有满足条件的道路。

样例

输入

3
6 6
1 2 2
1 3 2
2 4 2
3 5 2
4 5 1
5 6 2
6 6
1 2 2
1 3 2
2 4 2
3 5 2
4 5 3
5 6 2
6 7
1 2 2
1 3 2
2 4 2
3 5 2
4 5 1
5 6 2
1 6 7

输出

2
2 4
0

3
2 4 6

提示

对于 100\% 的数据,满足 1 \le t \le 100002 \le n \le 3 \times 10^51 \le m \le \min(3 \times 10^5, \frac{n \times (n-1)}{2})1 \le a_i, b_i \le na_i \neq b_i1 \le w_i \le 10^9