C. Построение порталов
ограничение по времени на тест
3 секунды
ограничение по памяти на тест
512 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Дан ориентированный граф, состоящий из $$$n$$$ вершин и $$$m$$$ ребер. В этом графе могут быть кратные ребра и петли.

Вы можете в некоторых вершинах построить порталы; после этого из любой вершины, в которой есть портал, можно будет переместиться в любую другую вершину, в которой есть портал. Кроме того, можно перемещаться по ребрам заданного графа.

Ваша задача — построить минимальное количество порталов так, чтобы из каждой вершины можно было добраться до каждой другой вершины.

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

В первой строке заданы два целых числа $$$n$$$ и $$$m$$$ ($$$1 \le n \le 2 \cdot 10^5$$$, $$$0 \le m \le 2 \cdot 10^5$$$) — количество вершин и ребер, соответственно.

Следующие $$$m$$$ строк содержат ориентированные ребра: ребро $$$i$$$ представлено в виде пары вершин $$$v_i$$$, $$$u_i$$$ ($$$1 \le v_i, u_i \le n$$$). Кратные ребра и петли допустимы для заданного графа.

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

Выведите одно целое число — минимальное количество порталов.

Примеры
Входные данные
4 5
4 3
1 2
3 1
1 2
2 4
Выходные данные
0
Входные данные
9 10
1 4
1 1
3 1
5 2
4 1
6 4
2 7
7 5
4 9
1 7
Выходные данные
5
Примечание

В первом примере из условия все вершины и так достижимы друг из друга, поэтому ни один портал не нужен.

Во втором примере из условия можно построить порталы в вершинах $$$3$$$, $$$5$$$, $$$6$$$, $$$8$$$ и $$$9$$$.