编程题
### 问题描述
探险家们发现了一片由 $n$ 个岛屿组成的群岛,命名为金苹果群岛。这些岛屿之间通过地脉相连,每一对相连的岛屿都可以通过地脉通往其他相连的岛屿。现在,探险家们计划在某些岛屿之间建设桥梁,以便每个岛屿都能够相互到达。桥梁是双向通行的。
已知有 $m$ 条地脉,每条地脉都连接了两个岛屿。你的任务是计算至少需要建设多少座桥梁,才能实现探险家们的计划。
### 输入格式
第一行包含两个整数 $n$ 和 $m$ ,分别表示岛屿的数量和地脉的数量。
接下来的 $m$ 行,每行包含两个整数 $a$ 和 $b$,表示第 $a$ 个岛屿和第 $b$ 个岛屿之间有一条地脉。
### 输出格式
输出一个整数,表示至少需要建设的桥梁数量。
### 样例输入
```
5 3
1 2
2 3
4 5
```
### 样例输出
```
1
```
### 评测数据范围
$1 \leq n \leq 10^5$ ,$0 \leq m \leq 10^5$ ,$1 \leq a, b \leq n$ ,$a \neq b$。