**Time limit:**1.00 s**Memory limit:**512 MB

You are given an undirected graph that has n nodes and m 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 10^9+7.

# Input

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

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

# Output

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

# Constraints

- 1 \le n \le 10^5
- 0 \le m \le 2 \cdot 10^5
- 1 \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.