Задача №111540. Компоненты связности

Codeforces is down so we are here.

Hope this is the last time

Дан неориентированный невзвешенный граф. Необходимо посчитать количество его компонент связности и вывести их.

Входные данные

Во входном файле записано два числа \(N\) и \(M\) (0 < \(N\) ≤ 100000, 0 ≤ \(M\) ≤ 100000). В следующих \(M\) строках записаны по два числа \(i\) и \(j\) (1 ≤ \(i\), \(j\)\(N\)), которые означают, что вершины \(i\) и \(j\) соединены ребром.

Выходные данные

В первой строчке выходного файла выведите количество компонент связности. Далее выведите сами компоненты связности в следующем формате: в первой строке количество вершин в компоненте, во второй - сами вершины в произвольном порядке.

Примеры
Входные данные
6 4
3 1
1 2
5 4
2 3
Выходные данные
3
3
1 2 3 
2
4 5 
1
6 
Сдать: для сдачи задач необходимо войти в систему