spoj#SPCE. Gopu and Combinatorics on Graphs
Gopu and Combinatorics on Graphs
Little Gopu was playing with graphs. He encoutered following problem while playing.
Given a graph G with n vertices and m edges. Let us say it has k connected components. Find out how many numbers of ways you can add k - 1 edges to make the graph connected. Note that the new edge you are going to add should not be a repeated edge ie. if you are going to connect u, v then there should not be an edge between u, v already in the graph. Output the answer modulo 10^9 + 7.
If the graph is already connected, Output -1
Help Gopu with this task.
Input
First line contains T : number of test cases. (1 <= T <= 20)
For each test case, First line contains two space seperated integers n, m: (1 <= n, m <= 10^5).
Then For each of the next m lines, each line contains two space seperated integers u and v denoting that u and v are connected to each other. (1 <= u, v <= n and u != v)
Output
For each test case, output the answer as required.
Example
Input: 4
4 2
1 2
3 4
5 3
1 2
3 4
4 5
3 3
1 2
2 3
3 1
7 5
1 2
3 4
4 5
3 5
6 7
Output: 4
6
-1
84