冗余通道建设

题目描述

Y 同学管理着一个拥有 FF 个牧场(编号 11FF)的农场。目前,这些牧场之间通过 RR 条双向道路相连。尽管整个农场是连通的,即从任意一个牧场出发都能到达其他所有牧场,但某些牧场之间的连接可能非常脆弱。

为了提高农场的交通可靠性,Y 同学希望新建一些道路,使得对于农场中任意两个不同的牧场,都至少存在两条没有任何公共道路(边不相交)的路径可以互相到达。换句话说,他希望整个农场的道路网络变成一个边双连通图,即删除任意一条道路都不会导致图不连通。

请你帮助 Y 同学计算,最少需要新建多少条道路才能达成这个目标。

输入格式

第一行包含两个整数 FFRR,分别表示牧场的数量和现有道路的数量。

接下来的 RR 行,每行包含两个整数 uuvv,表示牧场 uu 和牧场 vv 之间存在一条双向道路。

输出格式

输出一个整数,表示最少需要新建的道路数量。

样例

样例输入 #1

7 7
1 2
2 3
3 4
2 5
4 5
5 6
5 7

样例输出 #1

2

数据范围与约定

对于 100%100\% 的数据,保证:

  • 1F50001 \le F \le 5000
  • F1R10000F-1 \le R \le 10000
  • 输入保证初始图是连通的。
  • 两个牧场之间可能已经存在多条道路。