ICPC-World 是 ACM-ICPC 参赛者最受欢迎的角色扮演游戏(RPG),其目标是征服世界。游戏地图由多个城市组成,任意两个城市之间最多只有一条道路,且每条道路都是双向的。如果两个城市之间有道路相连,则它们被称为邻居。每个城市有一个或多个邻居,并且所有城市都通过一条或多条道路相连。
游戏玩家可以从世界上的任何城市开始。在征服了玩家所在的城市后,玩家可以前往任何邻居城市,该邻居城市将是玩家下一步要征服的城市。Chansu 是这款游戏的狂热粉丝,他喜欢以多种方式享受游戏。在游戏开始前,他总是确定一个他想要征服的城市的列表。
这次,他希望在满足以下条件的情况下选择尽可能多的城市:设 (C0, C1, ..., Ck) 是他将要按顺序征服的城市的列表。
列表中的所有城市都是不同的,即如果 i ≠ j,则 Ci ≠ Cj。 对于所有的 i = 0, 1, ..., k-2,Ci、C{i+1} 和 C{i+2} 是相互邻居,且 C{i+1} 的邻居数量大于 Ci 的邻居数量。 例如,考虑下面图示的游戏地图。地图上有六个城市。城市 0 有两个邻居,城市 1 有五个邻居。满足上述条件的最长城市列表是 {2, 5, 4, 1},包含 4 个城市。(这里说的是样例1,请自行画图理解)
为了帮助 Chansu,给定一个包含 n 个城市的游戏地图,请编写一个程序来找出他能够征服的最大城市数量,即满足上述条件的最长城市列表的长度。
第一行2各整数n,m,表示有n个城市,m条道路 接下来m行,每行2个整数,表示2个城市之间有道路
输出一个整数,表示满足条件最多的攻打城市数量
6 9 0 1 0 4 1 2 1 3 1 4 1 5 2 5 3 4 4 5
4
12 11 1 2 2 3 3 4 4 5 5 0 6 3 7 4 8 5 9 4 10 5 11 5
5
1<=n<=1000000;
1<=m<=3000000;