P0713

相框

相框

P 大的基础电路实验课十分无聊。每次实验,T 君总能提前完成,但管理员不允许他提前离开,他只能坐在实验室里打发时间。

实验的内容无非是用焊锡将若干导线与电阻、电容、电感等元器件焊接起来。于是,每次完成实验后,T 君都会利用导线焊接出一些形状奇特的作品。

然而,T 君并不满足于这些奇形怪状的作品。他打算拆解现有作品,并将其重新焊接成一个规整的环形,作为自己的相框。在改造过程中,必须使用原作品中的全部导线。

T 君可以进行以下两种操作:

  • 烧熔一个焊点,使连接在该焊点上的导线重新分组。具体而言,可以将这些导线划分为若干组:同一组中的导线仍然相连,不同组之间的导线彼此分离;
  • 将两根导线的自由端焊接在一起。自由端是指当前未与任何其他导线相连的一端。

例如,可以先烧熔焊点 AA,使导线 11 与导线 22、44 分离;再烧熔焊点 DD,使导线 44、55 与导线 33、77 分离;随后烧熔焊点 EE,使导线 77 与导线 66、88 分离;最后将导线 11 与导线 77 的自由端焊接起来。

请计算 T 君将原有作品改造成相框所需的最少操作次数。

输入格式

第一行包含两个整数 nn 和 mm,分别表示原有作品中的焊点数量和导线数量。

焊点编号为 11 至 nn。

接下来 mm 行,每行包含两个整数,表示一根导线两端所连接的焊点编号。如果某一端未与任何焊点相连,则该端的编号为 00。

原有作品不一定连通。

某些焊点可能只有一根导线与之相连。在该导线的这一端与其他导线相连之前,不允许烧熔这些焊点。

某些焊点可能没有任何导线与之相连。由于 T 君只关心导线,因此可以忽略这些焊点。

输出格式

输出一个整数,表示将原有作品改造成相框所需的最少操作次数。

样例输入

6 8
1 2
1 3
3 4
1 4
4 6
5 6
4 5
1 5

样例输出

4

数据范围

  • 0≤n≤1030\le n\le 10^3,2≤m≤5×1042\le m\le 5\times 10^4;
  • 对于 30%30\% 的数据,n≤10n\le 10;
  • 对于 100%100\% 的数据,n≤103n\le 10^3。

来源与许可

本题题面与测试数据整理自 BZOJ 2503。

样例 1

输入

6 8
1 2
1 3
3 4
1 4
4 6
5 6
4 5
1 5

输出

4