CSES - Eulerian Subgraphs
  • Time limit: 1.00 s
  • Memory limit: 512 MB

You are given an undirected graph that has nn nodes and mm edges.

We consider subgraphs that have all nodes of the original graph and some of its edges. A subgraph is called Eulerian if each node has even degree.

Your task is to count the number of Eulerian subgraphs modulo 109+710^9+7.

Input

The first input line has two integers nn and mm: the number of nodes and edges. The nodes are numbered 1,2,,n1,2,\dots,n.

After this, there are mm lines that describe the edges. Each line has two integers aa and bb: there is an edge between nodes aa and bb. There is at most one edge between two nodes, and each edge connects two distinct nodes.

Output

Print the number of Eulerian subgraphs modulo 109+710^9+7.

Constraints

  • 1n1051 \le n \le 10^5
  • 0m21050 \le m \le 2 \cdot 10^5
  • 1a,bn1 \le a,b \le n

Example

Input:

4 3
1 2
1 3
2 3

Output:

2

Explanation: You can either keep or remove all edges, so there are two possible Eulerian subgraphs.