渡渡鸟最近很喜欢图论。
有一张nnn个点mmm条边的无向联通图,保证没有自环和重边,每条边有边权0/10/10/1,你可以对这个图进行两种操作:
1.选择这个图的一个简单环,将这个环的边权反转(简单环指一个不重复经过点的环)
2.选择一个点集AAA,如果一条边(x,y)(x,y)(x,y)满足x∈A,y∉Ax\in A,y\notin Ax∈A,y∈/A,就把这条边边权反转,即000变成111,111变成000
你最多可以进行m−n+2m-n+2m−n+2次操作,请将所有边的边权变为000
若没有办法在m−n+2m-n+2m−n+2次操作之内办到,请输出−1-1−1
否则请输出任意一组合法解
第一行两个正整数n,mn,mn,m
下面mmm行,每行三个正整数x,y,tx,y,tx,y,t,表示(x,y)(x,y)(x,y)有一条边权为ttt的边
若无解,输出−1-1−1
否则
第一行一个正整数kkk表示操作次数
接下来kkk行每行描述一个操作,首先输出两个正整数type,numtype,numtype,num,type=1/2type=1/2type=1/2表示操作种类,0<num≤n0<num\le n0<num≤n表示操作涉及点/边的数量
下面输出numnumnum个正整数,这些正整数小于等于nnn:
若为操作1(type=1)(type=1)(type=1),按照环的任意合法顺序输出环上边的编号,合法顺序指:对于任意一个环上的点,从这个点开始,沿任意方向遍历这个环,最后回到这个点,访问的边的对应顺序为一个合法顺序
若为操作2(type=2)(type=2)(type=2),按照任意顺序输出集合中的点的编号。
注意若你的输出有任何非法状况或者你的操作次数大于m−n+2m-n+2m−n+2次,那么你不会获得分数。
4 4 1 2 1 1 3 1 2 4 0 3 4 0
1 2 1 1
4 4 1 2 1 1 3 0 2 4 0 3 4 0
-1
5 9 1 2 1 1 4 1 1 5 1 2 5 1 4 5 0 3 5 1 2 3 1 3 4 1 2 4 0
3 1 4 1 7 6 3 1 3 4 5 9 2 1 4
2≤n≤2002\le n\le 2002≤n≤200
n−1≤m≤n(n−1)2n-1\le m\le \frac{n(n-1)}{2}n−1≤m≤2n(n−1)
x≠y,t=0/1x\neq y,t=0/1x=y,t=0/1,保证无重边,无自环,图联通,且至少有一条边边权为111