9297 - 边双连通分量

对于一个 n 个节点 m 条无向边的图,请输出其边双连通分量的个数,并且输出每个边双连通分量。

在一张连通的无向图中,对于两个点 u 和 v,如果无论删去哪条边(只能删去一条)都不能使它们不连通,我们就说 u 和 v 边双连通。 对于一个无向图中的 极大 边双连通的子图,我们称这个子图为一个 边双连通分量。

输入

第一行,两个整数 nm

接下来 m 行,每行两个整数 u, v,表示一条无向边。

不保证图为简单图,图中可能有重边和自环。

输出

第一行一个整数 x 表示边双连通分量的个数。

接下来的 x 行,每行第一个数 a 表示该分量结点个数,然后 a 个数,描述一个边双连通分量。

你可以以任意顺序输出边双连通分量与边双连通分量内的结点。

样例

输入

5 8
1 3
2 4
4 3
1 2
4 5
5 1
2 4
1 1

输出

1
5 1 5 4 2 3

输入

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

输出

3
1 1
5 2 5 3 6 4
1 7

输入

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

输出

4
3 1 2 3
1 4
1 5
1 6

提示

对于 100\% 的数据,1 \le n \le 5 \times10 ^51 \le m \le 2 \times 10^6

来源

模板

时间限制 3 秒
内存限制 512 MB
讨论 统计
上一题 下一题