ICPC-World 是最受 ICPC 参赛者欢迎的 RPG 游戏,其目标是征服世界。游戏地图由若干城市组成,任意两个城市之间最多只有一条道路。所有道路都是双向的。如果两个城市之间有道路相连,则称它们为邻居。每个城市都有一个或多个邻居,且所有城市都通过一条或多条道路相连。玩家可以从世界上的任何城市开始游戏。在征服一个城市后,玩家可以前往任何邻近的城市,该城市即为玩家在下一阶段要征服的城市。
Chansu 是该游戏的狂热爱好者,他喜欢以各种方式进行游戏。在开始游戏之前,他总是会确定一个他想要征服的城市列表。他希望在满足以下条件的前提下,尽可能多地征服城市:设 $(c_0, c_1, \dots, c_{m-1})$ 为他将按顺序征服的城市列表。列表中的所有城市都是不同的,即对于 $i \neq j$,$c_i \neq c_j$,且 $c_i$ 和 $c_{i+1}$ 是邻居,并且对于 $i = 0, 1, \dots, m-2$,城市 $c_{i+1}$ 的邻居数量大于城市 $c_i$ 的邻居数量。
例如,考虑下图所示的游戏地图。地图上有六个城市。城市 $0$ 有两个邻居,城市 $1$ 有五个邻居。满足上述条件的最长城市列表是 $(2, 5, 4, 1)$,包含 $4$ 个城市。
为了帮助 Chansu,给定一张包含 $n$ 个城市的游戏地图,请编写一个程序来找出他能征服的最大城市数量,即满足上述条件的最长城市列表的长度。
输入格式
程序从标准输入读取数据。输入的第一行包含两个整数 $n$ 和 $m$ ($1 \le n \le 100,000$,$n - 1 \le m \le 300,000$),其中 $n$ 是游戏地图上的城市数量,$m$ 是道路数量。所有城市编号从 $0$ 到 $n-1$。接下来的 $m$ 行,每行包含两个整数 $i$ 和 $j$ ($0 \le i \neq j \le n-1$),表示连接城市 $i$ 和城市 $j$ 的一条道路。
输出格式
程序将结果写入标准输出。输出仅一行,包含 Chansu 可以征服的最大城市数量。
样例
输入 1
6 9 0 1 0 4 1 2 1 3 1 4 1 5 2 5 3 4 4 5
输出 1
4
输入 2
12 11 1 2 2 3 3 4 4 5 5 0 6 3 7 4 8 5 9 4 10 5 11 5
输出 2
5