82699 - 垃圾运输

通过次数

1

提交次数

5

时间限制 : 2 秒
内存限制 : 256 MB

给定一张 n 个点 m 条边的无向图,每条边居黑白二色之一,且有一个黑或白的目标颜色。

有一辆卡车,可以从任意一个结点开始,经过一个简单环(不经过重复边或起点以外结点的环)回到出发点,将所有经过边的颜色反转,即黑色变为白色,白色变为黑色。卡车可以从不同的结点出发行走若干次。

请给出一个合法的方案,使得每条边最终都变为目标颜色,或判定不可行。

输入

输入的第一行包含两个空格分隔的正整数 nm ( 1 \leqslant n \leqslant 100000,1 \leqslant m \leqslant 1000000),表示图的点数和边数。

接下来 m 行,每行包含四个空格分隔的正整数 a,b,s,t 1 \leqslant a \leqslant b \leqslant n , s,t \in \lbrace0,1\rbrace ) ,表示一条联结结点 ab 的边,初始颜色和目标颜色分别为 st

你可以认为若存在合法方案,则存在一个卡车经过总边数不超过 5m 的方案。

对于 60\% 分数的数据,有 m \leqslant 10000

输出

如果不存在合法方案,输出一行 NIE(波兰语「否」);

否则按下列格式输出任意一种方案:

  • 第一行包含一个整数 k,表示卡车行驶环路的总数;
  • 接下来 k 行,每行描述一条环路:
    • 首先是一个正整数 k_i 表示环路经过的边数,后接一个空格;
    • 接下来 k_i + 1 个空格分隔的整数,依次表示环路上结点的编号。

样例

输入

6 8
1 2 0 1
2 3 1 0
1 3 0 1
2 4 0 0
3 5 1 1
4 5 0 1
5 6 0 1
4 6 0 1

输出

2
3 1 3 2 1
3 4 6 5 4

输入

6 8
1 2 0 1
2 3 1 0
1 3 0 1
2 4 0 0
3 5 1 1
4 5 0 1
5 6 0 1
4 6 0 0

输出

NIE

提示

来源

POI