Дан ориентированный граф, состоящий из $$$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$$$.
| Name |
|---|


