Problems
Компоненты связности - 2
Компоненты связности - 2
Дан неориентированный невзвешенный граф.
Необходимо посчитать количество его компонент связности и вывести их.
\InputFile
Во входном файле записано два числа \textbf{N} и \textbf{M} (\textbf{0} < \textbf{N} ≤ \textbf{100000}, \textbf{0} ≤ \textbf{M} ≤ \textbf{100000}). В следующих \textbf{M} строках записаны по два числа \textbf{i} и \textbf{j} (\textbf{1} ≤ \textbf{i}, \textbf{j} ≤ \textbf{N}), которые означают, что рёбра \textbf{i} и \textbf{j} соединены ребром.
\OutputFile
В первой строке выходного файла выведите количество компонент связности. Далее выведите сами компоненты связности в следующем формате: в первой строке количество вершин в компоненте, во второй - сами вершины в произвольном порядке.
Input example #1
6 4 3 1 1 2 5 4 2 3
Output example #1
3 3 1 2 3 2 4 5 1 6