Ваш друг разрабатывает компьютерную игру. Он уже решил, каким должен быть игровой мир — он будет состоять из $$$n$$$ локаций, соединенных $$$m$$$ двусторонними переходами. Система переходов устроена таким образом, что с их помощью можно добраться из любой локации в любую другую.
Естественно, некоторые переходы будут охраняться монстрами (если можно пройти куда угодно без боя, то это слишком просто и совсем не весело, так ведь?). Некоторые важные переходы будут охраняться очень сильными монстрами, требующими серьёзной подготовки и разработки специальной боевой тактики (обычно таких монстров в играх называют боссами). Ваш друг как раз хочет, чтобы вы ему помогли расставить боссов по переходам.
Игра начнётся в локации $$$s$$$ и закончится в локации $$$t$$$, но эти локации пока не определены. После того, как эти две локации будут выбраны, ваш друг хочет поставить босса в каждый такой переход, что, не пользуясь этим переходом, невозможно попасть из локации $$$s$$$ в локацию $$$t$$$. Чем больше боссов будет в игре, тем лучше (чем сложнее игра, тем она веселее, так ведь?), и поэтому ваш друг попросил вас определить максимально возможное количество боссов, принимая во внимание любой возможный выбор локаций $$$s$$$ и $$$t$$$.
В первой строке заданы два целых числа $$$n$$$ и $$$m$$$ ($$$2 \le n \le 3 \cdot 10^5$$$, $$$n - 1 \le m \le 3 \cdot 10^5$$$) — количество локаций и переходов, соответственно.
Затем следуют $$$m$$$ строк, каждая содержит два числа $$$x$$$ и $$$y$$$ ($$$1 \le x, y \le n$$$, $$$x \ne y$$$), обозначающие локации, соединенные очередным переходом.
Гарантируется, что никакая пара локаций не соединена напрямую более чем одним переходом, и что можно из любой локации достичь любой другой локации, пользуясь только этими переходами.
Выведите одно число — максимальное количество боссов, которое можно поставить, по всем возможным парам локаций $$$s$$$ и $$$t$$$.
5 5
1 2
2 3
3 1
4 1
5 2
2
4 3
1 2
4 3
3 2
3
Название |
---|