Кількість циклів
Формально, шлях у графі - це послідовність, що чергується, вершин та ребер u[1]
, e[1]
, u[2]
, e[2]
, u[3]
, ..., u[k]
, яка починається і завершується вершиною і така, що довільні сусідні вершини та ребра у ній інцидентні.
Цикл - це шлях, початкова і кінцева вершини якого співпадають. У циклі повинно бути хоча б одне ребро.
Простий шлях відрізняється від звичайного шляху тим, що у ньому не може бути вершин, які повторюються.
Простий цикл - це цикл, у якому немає вершин та ребер, що повторюються.
Задано неорієнтовний граф. Підрахуйте, скільки у ньому різних простих циклів. Відмітимо, що цили вважаються однаковими, якщо вони обходять одну і ту ж множину вершин у одному і тому ж порядку, можливо, починаючи при цьому з іншої вершини, або якщо порядок обходу протилежний. Наприклад, цикли з порядком обходу вершин 1, 2, 3, 1 та 2, 3, 1, 2 і 1, 3, 2, 1 вважаються однаковими, а цикли 1, 2, 3, 4, 1 і 1, 3, 4, 2, 1 - ні, оскільки порядок обходу вершин різний.
Вхідні дані
У першому рядку задано кількість вершин n (1 ≤ n ≤ 10) та ребер m у графі, відповідно. Наступні m рядків містять по два числа u[i]
та v[i]
(1 ≤ u[i]
, v[i]
≤ n, u[i]
≠ v[i]
); кожен з таких рядків означає, що у графі існує ребро між вершинами u[i]
та v[i]
. У графі немає кратних ребер.
Вихідні дані
Виведіть кількість простих циклів у заданому графі.