#P1603. 我们需要更多的boss

我们需要更多的boss

题目描述

你的朋友正在开发一款电脑游戏。他已经决定了游戏世界的样子——它应该由 nn 个地点通过 mm 双向 通道连接而成。这些通道的设计使得可以从任何一个地点到达任何其他地点(即保证这是一个连通图)。

当然,一些通道应该被怪物守卫(如果你可以随意走动而没有任何困难,那就没有乐趣了,对吧?)。一些关键的通道将被非常可怕的怪物守卫,要求英雄做好战斗准备并设计自己的战胜它们的策略(通常这些怪物被称为 boss)。你的朋友希望你帮助他放置这些boss。

游戏将在地点 ss 开始,并在地点 tt 结束,但这些地点尚未选择。

在选择这些地点后,你的朋友将在每条 必经之路 中放置一个boss。这里,必经之路 定义为:如果从地点 ss 出发到地点 tt 的所有路径都笔记经过这个通道,则这个通道就是必经之路。

你的朋友希望放置尽可能多的boss(因为更多的挑战意味着更多的乐趣,对吧?),所以他请你帮助他确定在考虑所有可能选择 sstt 的情况下,最多可以放置多少个boss。

输入格式

第一行包含两个整数 nnmm (2n31052 \le n \le 3 \cdot 10^5, n1m3105n - 1 \le m \le 3 \cdot 10^5) — 地点和通道的数量。

接下来 mm 行,每行包含两个整数 xxyy (1x,yn1 \le x, y \le n, xyx \ne y) 描述一个通道的两个端点。

保证没有一对地点直接通过两个或多个通道连接,并且任何地点都可以从任何其他地点到达。

输出格式

打印一个整数 — 你的朋友可以放置的最大boss数量,考虑所有可能的 sstt 的选择。

样例

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