Number of Connected Subgraph

Time Limit: 3000ms
Memory Limit: 262144KB
This problem will be judged on HDU. Original ID: 5871
64-bit integer IO format: %I64d      Java class name: Main

Description

A cactus is a connected undirected graph in which every edge belongs to at most one simple cycle. Intuitively, cactus is a generalization of a tree where some cycles are allowed. Given an undirected graph $G(V,E)$, where $ V $ is the set of vertices and $ E $ of edges, where an edge is a set of two distinct vertices $ \{v_1,v_2\}\subseteq V $. An $induced\ subgraph$ of a graph is another graph, formed from a subset of the vertices of the graph and $all$ of the edges connecting pairs of vertices in that subset. Now, here comes the problem: How many induced subgraphs of a cactus are still cactuses?

Input

There are several cases, process till end of input.
  
  For each case, the first line contains an integer $ N $, the second line an integer $ M $, denoting respectively the number of vertices and edges of the given directed graph. Each of the following $ M $ lines contains two integers $ u$ and $v$, meaning there is one edge between $ u $ and $ v $.

You can assume that
    $\cdot$ the given graph is always a cactus
    $\cdot$ $ N,M\le 100000 $

Output

For each case output your answer mod 1000000007 on a single line.

Sample Input

4
4
1 2
2 3
3 4
4 1
5
6
1 2
2 3
3 1
2 4
4 5
5 2

Sample Output

13
22

Source

Language: 
Theme: 
Share Code? 

Powered by NB231 | Current Style: .