#D13155. Edge Ordering
Edge Ordering
Edge Ordering
You are given a simple connected undirected graph G consisting of N vertices and M edges. The vertices are numbered 1 to N, and the edges are numbered 1 to M.
Edge i connects Vertex a_i and b_i bidirectionally. It is guaranteed that the subgraph consisting of Vertex 1,2,\ldots,N and Edge 1,2,\ldots,N-1 is a spanning tree of G.
An allocation of weights to the edges is called a good allocation when the tree consisting of Vertex 1,2,\ldots,N and Edge 1,2,\ldots,N-1 is a minimum spanning tree of G.
There are M! ways to allocate the edges distinct integer weights between 1 and M. For each good allocation among those, find the total weight of the edges in the minimum spanning tree, and print the sum of those total weights modulo 10^{9}+7.
Constraints
- All values in input are integers.
- 2 \leq N \leq 20
- N-1 \leq M \leq N(N-1)/2
- 1 \leq a_i, b_i \leq N
- G does not have self-loops or multiple edges.
- The subgraph consisting of Vertex 1,2,\ldots,N and Edge 1,2,\ldots,N-1 is a spanning tree of G.
Input
Input is given from Standard Input in the following format:
N M a_1 b_1 \vdots a_M b_M
Output
Print the answer.
Examples
Input
3 3 1 2 2 3 1 3
Output
6
Input
4 4 1 2 3 2 3 4 1 3
Output
50
Input
15 28 10 7 5 9 2 13 2 14 6 1 5 12 2 10 3 9 10 15 11 12 12 6 2 12 12 8 4 10 15 3 13 14 1 15 15 12 4 14 1 7 5 11 7 13 9 10 2 7 1 9 5 6 12 14 5 2
Output
657573092
inputFormat
input are integers.
- 2 \leq N \leq 20
- N-1 \leq M \leq N(N-1)/2
- 1 \leq a_i, b_i \leq N
- G does not have self-loops or multiple edges.
- The subgraph consisting of Vertex 1,2,\ldots,N and Edge 1,2,\ldots,N-1 is a spanning tree of G.
Input
Input is given from Standard Input in the following format:
N M a_1 b_1 \vdots a_M b_M
outputFormat
Output
Print the answer.
Examples
Input
3 3 1 2 2 3 1 3
Output
6
Input
4 4 1 2 3 2 3 4 1 3
Output
50
Input
15 28 10 7 5 9 2 13 2 14 6 1 5 12 2 10 3 9 10 15 11 12 12 6 2 12 12 8 4 10 15 3 13 14 1 15 15 12 4 14 1 7 5 11 7 13 9 10 2 7 1 9 5 6 12 14 5 2
Output
657573092
样例
4 4
1 2
3 2
3 4
1 3
50