Мінімізація ребер#11217

Мінімізація ребер

1 секунда
128 мегабайтів
Дуже складна

У Бессі є зв'язний неорієнтований граф з вершинами, позначеними 1, 2, \ldots, n, і ребрами. Граф може містити петлі (ребра, що починаються й закінчуються в одній вершині), але не має паралельних ребер (декілька ребер між одними й тими ж вершинами).

Нехай f_G(a, b) — це булева функція, яка повертає істину, якщо існує шлях від вершини до вершини , що проходить рівно ребер (1 \le a \le n, 0 \le b). В іншому випадку функція повертає хибність. Якщо по ребру проходять кілька разів — це враховується в підрахунку.

Ельза хоче повторити за Бессі. Вона прагне створити неорієнтований граф G' такий, що f_{G'}(a, b) = f_G(a, b) для всіх і .

Ельза хоче виконати мінімум роботи, тому вона прагне створити граф з мінімальною можливою кількістю ребер. Ваше завдання — порахувати мінімальну можливу кількість ребер у G'.

Гарантується, що сума по всіх тестах не перевищує 10^5, а сума по всіх тестах не перевищує 2 \cdot 10^5.

Вхідні дані

Перша стрічка містить (1 \le t \le 5 \cdot 10^4) — кількість тестів.

Перша стрічка кожного тесту містить два цілих числа і (2 \le n \le 10^5, n - 1 \le m \le \frac{n^2 + n}{2}).

Наступні рядків кожного тесту містять два цілі числа і (1 \le x \le y \le n), що позначають ребро між і в .

Послідовні тести розділені порожнім рядком для зручності читання.

Вихідні дані

Для кожного тесту виведіть мінімально можливу кількість ребер у G' в окремому рядку.

Приклади

У першому тесті, Ельза може сконструювати G' почавши з і видаливши ребро . Або може сконструювати граф з наступними ребрами, оскільки вона не обмежена лише видаленням ребер з :

1 2
1 4
4 3
4 5

Ельза не може зробити краще, ніж n - 1 ребро, оскільки граф G' також повинен бути зв'язним.

Приклад 1

Loading
Loading