У Сови був ланцюжок, що складався з ланок, пронумерованих від до . Але поки ланцюжок лежав у комоді, він весь заплутався. Сова хоче виправити ситуацію.
Кожна ланка являє собою кільце з дроту. Кожні дві ланки або переплетені одна з одною, або ні. Сова звернулася за допомогою до Піна. Він може виконувати дві дії:
Розкувати одну з ланок. При цьому ланка перестає бути замкнутим кільцем, і тому її можна від'єднати від усіх інших ланок.
Знову запаяти раніше розковану ланку. При цьому, вона знову стає замкнутим кільцем. Пін може вибрати довільну множину інших ланок, протягти через них поточну ланку перед запаюванням і таким чином з'єднати цю ланку з кожною ланкою з вибраної множини.
Наприкінці всі ланки повинні бути запаяними.
Сова хоче, щоб ланка номер була з'єднана з ланкою номер , з , ..., n - 1 з . Іншими словами, щоб були з'єднані ланки з номерами та i + 1 для всіх i \in [1, n - 1]. І ніякі інші пари ланок не повинні бути з'єднані.
Допоможіть Піну визначити мінімальну кількість дій, які йому доведеться виконати, щоб полагодити ланцюжок.
У першому рядку задано два цілих числа і m~(1 \le n \le 40, 0 \le m \le n \cdot (n - 1) / 2) — кількість ланок і кількість пар спочатку з'єднаних ланок.
У наступних рядках дано по два цілі числа a_i і b_i~(1 \le a_i, b_i \le n, a_i \ne b_i) — номери з'єднаних ланок.
Гарантується, що у вхідних даних кожна неупорядкована пара ланок зустрічається максимум один раз.
Виведіть одне ціле число — мінімальну кількість дій, які повинен виконати Пін, аби полагодити ланцюжок.
У першому прикладі Пін може розкувати ланку номер . Тоді вона від'єднається від обох інших ланок. А потім запаяти ланку номер назад, з'єднавши її тільки з ланкою номер .
У другому прикладі Пін може розкувати ланку номер , потім запаяти її назад, з'єднавши з ланками і . А потім розкувати ланку номер і запаяти назад, з'єднавши з ланками і .
Приклад 1
Приклад 2
Приклад 3