Вузли кабельної мережі між собою з'єднані кабелями так, що кожен кабель з'єднує одну пару різних вузлів, а пара вузлів може бути з'єднана кількома кабелями. Мережа вважається зв'язною, якщо будь-які два вузли з'єднані безпосередньо або опосередковано; інакше, мережа є незв'язною. Рівень безпеки мережі визначається так:
дорівнює , якщо мережа незв'язна, або якщо кількість вузлів чи .
Якщо кількість вузлів більша за , тоді — це мінімальна кількість кабелів, видалення яких роз'єднує мережу. Тобто, при видаленні будь-яких S-1 кабелів мережа залишається зв'язною, але існують кабелів, видалення яких роз'єднує мережу.

Наприклад, розглянемо мережу на рисунку , де вузли відповідають заштрихованим колам, а кабелі показані лініями. Мережа залишається зв'язною при видаленні будь-якого одного кабелю, але видалення кабелів та роз'єднує мережу. Інший спосіб роз'єднати мережу — видалити кабелі та . Рівень безпеки S = 2.
Напишіть програму, яка зчитує кілька наборів даних з текстового файлу і обчислює рівень безпеки кабельних мереж, закодованих у цих наборах даних.
Кожен набір даних починається з двох цілих чисел: кількість вузлів 0 \le n \le 100 і кількість кабелів 0 \le m \le 1000 у мережі. Далі йдуть пар , де u < v і та — ідентифікатори вузлів (цілі числа від до n-1). Пара позначає кабель, що з'єднує вузли та . Пари можуть бути в довільному порядку. Окрім пар , які не містять пробілів, пробіли у введенні можуть з'являтися довільно. Вхідні дані завершуються кінцем файлу і є коректними.
Для кожного набору даних програма повинна вивести, з початку рядка, рівень безпеки закодованої мережі у стандартний потік виводу.
Приклад 1