Formally, a path in a graph is an alternating sequence of vertices and edges u_1, e_1, u_2, e_2, u_3, \ldots, u_k, starting and ending with a vertex, such that any adjacent vertices and edges in the sequence are incident.
A cycle is a path where the initial and final vertices are the same. A cycle must contain at least one edge.
A simple path differs from an ordinary path in that it does not contain repeated vertices.
A simple cycle is a cycle without repeated vertices or edges.
Given an undirected graph, count how many different simple cycles it contains. Note that cycles are considered equal if they traverse the same set of vertices in the same order, possibly starting from a different vertex, or if the traversal order is reversed. For example, the cycles with the traversal order 1, 2, 3, 1 and 2, 3, 1, 2 and 1, 3, 2, 1 are considered identical, while the cycles 1, 2, 3, 4, 1 and 1, 3, 4, 2, 1 are different, since the order of traversal is not the same.
The first line contains the number of vertices (1 \leq n \leq 10) and the number of edges in the graph. The next lines each contain two numbers u_i and v_i (1 \leq u_i, v_i \leq n, u_i \ne v_i), indicating an edge between vertices u_i and v_i. The graph has no multiple edges.
Print the number of simple cycles in the given graph.
Example 1
Example 2