Інтерконект
У Королівстві Ліпшир існують дві серйозні проблеми: дороги та ті, хто їх будує. Одного разу король Ліпширу вирішив покращити дорожню систему, оскільки деякі дороги стали настільки непрохідними, що легше було подорожувати навпростець, ніж користуватися ними.
За наказом короля, у Ліпширі мають бути побудовані нові дороги. Нова дорожня система повинна з'єднувати всі міста, тобто має існувати шлях між будь-якими двома містами Ліпширу.
Дорожня адміністрація Ліпширу може будувати лише одну дорогу на рік. На жаль, ті, хто будує ці дороги, абсолютно неконтрольовані. Незалежно від наказів, вони випадково обирають два різні міста a і b та будують між ними дорогу, навіть якщо ці міста вже з'єднані. Усі можливі варіанти вибору рівноймовірні. Дорога будується так, що єдині точки, де мандрівник може залишити її, це міста, з'єднані цією дорогою. Єдине добре те, що всі дороги є двосторонніми.
Король знає про проблему, але нічого не може з цим вдіяти. Єдине, що йому потрібно знати, це очікувана кількість років, яку потрібно чекати, поки дорожня система Ліпширу стане з'єднаною. Він попросив вас надати цю інформацію.
Вхідні дані
Перша строка вхідних даних містить два цілі числа n та m (2 ≤ n ≤ 30, 0 ≤ m ≤ 1000) — кількість міст у Ліпширі та кількість доріг, які ще в доброму стані. Наступні m рядків описують дороги, по одній на рядок. Кожна дорога описується двома кінцевими точками — двома цілими числами u_i та v_i (1 ≤ u_i, v_i ≤ n, u_i ≠ v_i). Може бути кілька доріг між двома містами, але дорога з міста до самого себе не дозволена.
Вихідні дані
Виведіть очікувану кількість років, яку потрібно чекати, щоб дорожня система стала з'єднаною. Якщо система вже з'єднана, виведіть нуль як відповідь. Виведіть число з принаймні шістьма точними знаками після коми.