一个电缆网络的站点通过电缆相互连接,一条电缆连接一对不同的站点,且同一对站点之间可以连接多条电缆。如果网络中的任意两个站点都直接或间接相连,则称该网络是连通的;否则,网络是非连通的。网络的安全等级 $S$ 定义如下:
- 如果网络是非连通的,或者站点数量为 $0$ 或 $1$,则 $S$ 为 $0$。
- 如果站点数量大于 $1$,则 $S$ 是使网络不连通所需移除的最少电缆数量。也就是说,移除任意 $S-1$ 条电缆仍能保持网络连通,而移除某些 $S$ 条电缆会使网络不连通。
例如,考虑图 1 中的网络,其中站点对应于阴影圆圈,电缆由线段表示。移除任意单条电缆时,网络仍保持连通,而移除电缆 $(0,2)$ 和 $(1,3)$ 则会使网络不连通。另一种使网络不连通的方法是移除电缆 $(2,4)$ 和 $(2,4)$。该网络的安全等级为 $S=2$。
图 1. 一个电缆网络
输入格式
输入包含多个数据集。
每个数据集以两个整数开始:网络中的站点数量 $n$($0 \le n \le 100$)和网络中的电缆数量 $m$($0 \le m \le 1000$)。
接下来是 $m$ 个数据对 $(u,v)$,其中 $u < v$,$u$ 和 $v$ 是站点标识符(从 $0$ 到 $n-1$ 的整数)。数据对 $(u,v)$ 表示一条连接站点 $u$ 和 $v$ 的电缆。这些数据对可以以任意顺序出现。
除了不包含空格的 $(u,v)$ 数据对之外,输入中可以自由出现空格(包括换行符)。
输入数据以文件结束符(EOF)结束,且保证数据格式正确。
输出格式
对于每个数据集,在标准输出中单起一行,输出该编码网络的安全等级。
样例
输入样例 1
0 0 2 1 (0,1) 2 0 5 8 (0,1) (1,3) (2,3) (0,2) (0,1) (2,3) (2,4) (2,4)
输出样例 1
0 1 0 2
说明
第一个数据集编码了一个空网络。第二个数据集编码了一个包含 $2$ 个站点和 $1$ 条电缆的网络。第三个数据集对应一个包含 $2$ 个站点的非连通网络。第四个数据集编码了图 1 中所示的网络。