#L4052. 「GDKOI-S 2024」匹配

「GDKOI-S 2024」匹配

题目描述

给定一个 2n2n 个点 mm 条边的二分图,左部点编号为 1n1 \sim n,右部点编号为 n+12nn+1 \sim 2n

给定每条边为黑色或白色,你需要找到一个完美匹配,使得匹配里的黑色边数恰好为偶数。

如果你对二分图的定义有疑问:

二分图是一个无向图,点分为左右两部分,每部分各 nn 个点,每条边都连接两个属于不同部分的点。
一个完美匹配是一个大小为 nn 的边的集合,使得每个点都恰好与集合里的一条边相连。


输入格式

第一行一个正整数 TT,表示数据组数。每组数据的格式如下:

第一行两个正整数 n,mn, m,表示图的点数和边数。
接下来 mm 行,每行三个整数 ui,vi,ciu_i, v_i, c_i1uin1 \leq u_i \leq nn+1vi2nn+1 \leq v_i \leq 2n0ci10 \leq c_i \leq 1),表示一条连接 ui,viu_i, v_i 的边,颜色为 cic_ici=0c_i = 0 表示白色,ci=1c_i = 1 表示黑色。


输出格式

对于每组数据:如果无解,输出一行 -1。否则,输出一行 nn 个正整数,表示你找到的完美匹配里每条边的编号。边按照输入顺序编号为 1m1 \sim m


样例

输入

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

输出

5 3 6
-1

在第一组数据中,一个合法的完美匹配是 (1,6),(2,5),(3,4)(1, 6),(2, 5),(3, 4),且里面有恰好两条黑色边。

在第二组数据中,虽然存在完美匹配,但每个完美匹配都有奇数条黑色边。


数据范围与提示

本题使用子任务捆绑测试。

对于所有数据,保证 1T2501 \leq T \leq 2502n,n5002 \leq n,\sum n \leq 5001mn21 \leq m \leq n^2。保证图中不存在重边,即对于 iji \neq j(ui,vi)(uj,vj)(u_i, v_i) \neq (u_j , v_j)

子任务 附加限制 分值
1 n8n \leq 8T10T \leq 10 20%20\%
2 n18n \leq 18T10T \leq 10
3 cic_i{0,1}\{0, 1\} 里独立均匀随机
4 无特殊限制 40%40\%