#B3609. 强连通分量

强连通分量

强连通分量

题目描述

给定一张 nn 个点、mm 条边的有向图,求出其所有强连通分量。

注意:本题可能存在重边和自环。

输入格式

第一行包含两个正整数 n,mn,m,表示图的点数和边数。

接下来 mm 行,每行包含两个正整数 u,vu,v,表示一条从 uu 指向 vv 的边。

输出格式

第一行输出一个整数,表示图中强连通分量的数量。

随后每行输出一个强连通分量。按以下规则确定各分量的输出顺序:先输出包含 11 号点的分量;然后在尚未输出的点中取编号最小的点,输出包含它的分量;重复这一过程直到输出全部分量。每个分量内的点按编号从小到大输出。

样例输入 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

数据范围

对于所有数据,1n100001\le n\le 100001m1000001\le m\le 1000001u,vn1\le u,v\le n