% Author: Ivan Kazmenko
% Text: Ivan Kazmenko
% Origin: 20070209, Lisiy Nos, Simple Graph Training
\begin{problem}{Количество циклов}
{numcycle.in}{numcycle.out}
{2 секунды}{256 мебибайт}{}

 Формально, {\it путь} в графе "--- это чередующаяся последовательность
 вершин и рёбер $u_1, \, e_1, \, u_2, \, e_2, \, u_3, \ldots, \, u_k$,
 начинающаяся и заканчивающаяся вершиной и такая, что любые соседние вершина
 и ребро в ней инцидентны.

 {\it Цикл} "--- это путь, начальная и конечная вершины которого совпадают.
 В цикле должно быть хотя бы одно ребро.

 {\it Простой путь} отличается от обычного пути тем, что в нём не может
 быть повторяющихся вершин.
 
 {\it Простой цикл} "--- это цикл, в котором нет повторяющихся вершин и
 рёбер.

 Дан неориентированный граф. Посчитайте, сколько в нём различных простых
 циклов. Заметим, что циклы считаются одинаковыми, если они обходят одно
 и то же множество вершин в одном и том же порядке, возможно, начиная при
 этом из другой вершины, или если порядок обхода противоположный. Например,
 циклы с порядком обхода вершин $1, 2, 3, 1$, $2, 3, 1, 2$ и $1, 3, 2, 1$
 считаются одинаковыми, а циклы $1, 2, 3, 4, 1$ и $1, 3, 4, 2, 1$ "--- нет,
 поскольку порядок обхода вершин различен.

\InputFile

 В первой строке входного файла заданы числа $N$ и $M$ через пробел "---
 количество вершин и рёбер в графе, соответственно
 ($1 \leqslant N \leqslant 10$).
 Следующие $M$ строк содержат по два числа $u_i$ и $v_i$ через пробел
 ($1 \leqslant u_i, \, v_i \leqslant N$, $u_i \neq v_i$);
 каждая такая строка означает, что в графе существует ребро между вершинами
 $u_i$ и $v_i$. В графе нет кратных рёбер.

\OutputFile

 Выведите одно число "--- количество простых циклов в заданном графе.

\Examples

%\scriptsize
\begin{example}
\exmp{
3 2
1 2
2 3
}{
0
}%
\exmp{
4 5
1 2
2 3
3 4
4 1
1 3
}{
3
}%
\end{example}

\end{problem}
