Сузір’я
Обмеження: 2 сек., 256 МіБ
Якось одного зимового вечора лежали на снігу Марічка й Зеник та й зорі розглядали. Їх виявилось дуже багато, і всі вони були дуже гарними. Марічка й Зеник занумерували всі зірки, які вони бачили на небі, від 1 до \(n\) включно.
Наші голуб’ята вирішили позабавлятись (а що їм ще робити під зоряним небом?). Марійка називала номер зірки, а Зеник — номер іншої зірки, далі вони уявно сполучали ці зірки між собою. Так вони провели близько пів ночі, і в них на небі утворилось багато сполучених груп зірок. Такі групи Зеник та Марійка називали сузір’ями. Деякі зірки залишились самотніми (не сполученими з іншими зірками), але для наших героїв вони також були справжніми сузір’ями.
Щоб ніч не пройшла дарма, вони вирішили порахувати для кожного сузір’я, скільки в нього є сполучень. Але це потрібно зробити дуже швидко, оскільки надворі зима, і їм уже давно холодно лежати на снігу.
Вважається, що дві зірки належать одному сузір’ю, якщо вони сполучені між собою безпосередньо або через інші зірки.
Вхідні дані
Перший рядок містить два цілих числа \(n\) та \(m\) — кількість зірок на небі та кількість уявних сполучень відповідно.
Наступні \(m\) рядків містять по два цілих числа \(a_i\) та \(b_i\) — номер зірки, що назвала Марійка, та номер зірки, що назвав Зеник, відповідно.
Вихідні дані
У першому рядку виведіть ціле число \(k\) — загальну кількість сузір’їв на небі.
У наступних \(k\) рядках необхідно вивести кількості сполучень у сузір’ях у порядку неспадання.
Обмеження
\(1 \le n, m \le 10^4\),
\(1 \le a_i, b_i \le n\),
\(a_i \ne b_i\).
Приклади
| Вхідні дані (stdin) | Вихідні дані (stdout) |
|---|---|
| 6 5 1 2 2 3 4 5 2 1 3 1 | 3 0 1 4 |
Надіслати розв'язок
| Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
|---|
| Element Type | Створено | Хто | Задача | Компілятор | Результат | Час (сек.) | Пам'ять (МіБ) | № | Дії |
|---|