[图论与代数结构 701] 强连通分量

题目描述

给定一张 $n$ 个点 $m$ 条边的有向图,求出其所有的强连通分量。 **注意,本题可能存在重边和自环。**

输入输出格式

输入格式


第一行两个正整数 $n$ , $m$ ,表示图的点数和边数。 接下来 $m$ 行,每行两个正整数 $u$ 和 $v$ 表示一条边。

输出格式


第一行一个整数表示这张图的强连通分量数目。 接下来每行输出一个强连通分量。第一行输出 1 号点所在强连通分量,第二行输出 2 号点所在强连通分量,若已被输出,则改为输出 3 号点所在强连通分量,以此类推。每个强连通分量按节点编号大小输出。

输入输出样例

输入样例 #1

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

输出样例 #1

3
1 2 5 6
3
4

说明

对于所有数据,$1 \le n \le 10000$,$1 \le m \le 100000$。