Віталій Гольдштейн на Зимовій Школі розповідав про графи, білі, чорні та сірі вершини, а також про розв'язання багатьох задач на графах за допомогою методу обходу в глибину. Наприкінці він почав говорити про складне життя програміста і тому забув дати всім на Зимовій Школі у Харкові 2011 ще одну задачу, яку також можна вирішити зазначеним методом. Звичайно, Віталій не міг про це забути і попросив нас запропонувати цю задачу всім, адже як справжній майстер-лектор він не повинен втрачати нагоди дати будь-яку, навіть просту задачу, щойно з'явиться можливість поспілкуватися з аудиторією, навіть якщо це спілкування відбувається дистанційно.
Отже, ось ще одна проста задача, що розв'язується методом обходу в глибину: "Дано неорієнтований граф з вершинами і ребрами (1 \leq N \leq 20000, 0 \leq M \leq 200000). Граф не містить петель та кратних ребер. Визначте кількість зв'язних компонент даного графа."
Граф задається у вхідному файлі наступним чином: у першому рядку містяться числа та . Кожен з наступних рядків описує ребро двома цілими числами від до , які задають вершини, що з'єднані цим ребром.
Виведіть в одному рядку число — кількість зв'язних компонент у даному графі.
Приклад 1