9271 - 网络安全

通过次数

2

提交次数

4

时间限制 : 1 秒
内存限制 : 128 MB

小向正在设计一款网络安全应用程序,其中有许多功能模块需要连接。他已经确定了应用程序的模块结构,该安全应用程序由n个功能模块构成,这些功能模块通过m个程序接口连接(双向数据通信)。在某几个安全程序的接口处,有着敏感数据或者核心功能块,需要额外的安全功能块。小向希望你帮助他确定在哪些接口上添加额外的安全功能块。 安全功能块将被安装在接口s处开始,于接口t处结束。通过计算确定这些接口之后,小向将在s到t的每个接口中添加安全功能块,使得没有安全功能块的接口就无法从接口s到达接口t。小向希望尽可能多地保护关键接口,因此他请你帮助确定最多需要安装多少安全功能块,且任意的功能模块都可以选择作为s或者t 。

样例2的(如上图所示),s和t分别选1、4两个位置,这时路径经过的接口最多,故添加的安全安全功能块也是最多,为3个。

输入

第一行包含两个正整数nm,分别表示功能模块的数量和接口的数量。 接下来的m行,每行包含两个正整数xy(1 \leq x,y \leq n , x \not = y$),描述一个接口的两端功能模块编号。 保证不存在通过两个及以上连接相同功能模块的接口,且任意功能模块可从其他任何功能模块通过接口到达。

输出

输出一个正整数,表示在所有可能的st的选择情况下,能够安装的最多安全模块数量。

样例

输入

5 5
1 2
2 3
3 1
4 1
5 2

输出

2

输入

4 3
1 2
4 3
3 2

输出

3

提示

对于100%的数据: 2 \leq n \leq 3* \gdef\foo#1{#1^5} \foo{10}

1 \leq m \leq 3* \gdef\foo#1{#1^5} \foo{10}

来源

云南编程挑战赛