#150. 连通图

连通图

连通图

题目描述

给定一张包含 (n) 个结点与 (m) 条边的无向图,结点依次以 (1, 2, \dots, n) 编号。如果从一个结点经过若干条边可以到达另一个结点,则称这两个结点是连通的。

你需要向图中加入若干条边,使得图中任意两个结点都是连通的。请你求出最少需要加入的边的条数。

注意给出的图中可能包含重边与自环。

输入格式

第一行,两个正整数 (n, m),表示图的点数与边数。 接下来 (m) 行,每行两个正整数 (u, v),表示图中一条连接结点 (u) 与结点 (v) 的边。

输出格式

输出一行,一个整数,表示使得图中任意两个结点连通所需加入的边的最少数量。

样例

输入样例 1

6 4
1 2
2 3
3 1
6 5

输出样例 1

2

数据范围

对于所有测试点,保证 (1 \le n \le 10^5),(0 \le m \le 10^5)。

注:原始 PDF 因字体原因丢失了数据范围里的数字,此处重建为 (1 \le n \le 10^5),(0 \le m \le 10^5)。