Il y a $N$ villes et $M$ routes bidirectionnelles. Les villes sont numérotées de $1$ à $N$, et les routes de $1$ à $M$. La route $i$ relie les villes $A_i$ et $B_i$, et sa longueur est $2^i$. Il est garanti que l'on peut aller de n'importe quelle ville à n'importe quelle autre en empruntant ces routes.
Snuke veut faire une promenade en voiture. Il souhaite partir de la ville $1$, parcourir chaque route au moins une fois, puis revenir à la ville $1$. Calculez la longueur minimale possible de son trajet, modulo $10^9+7$.
Entrée
Le format de l'entrée est :
$$ \begin{gathered} N\quad M\\ A_1\quad B_1\\ \vdots\\ A_M\quad B_M \end{gathered} $$
- $2\le N\le400000$
- $1\le M\le500000$
- $1\le A_i,B_i\le N$
- $A_i\ne B_i$
- Il est possible d'aller de n'importe quelle ville à n'importe quelle autre en empruntant les routes.
- Aucune paire de villes n'est reliée par deux routes distinctes.
Sortie
Affichez la longueur minimale possible du trajet de Snuke, modulo $10^9+7$.
Exemples
Entrée 1
4 5 1 2 3 4 2 3 1 3 2 4
Sortie 1
70
Entrée 2
6 10 4 6 4 5 3 6 5 2 3 2 1 2 3 4 6 1 2 4 1 3
Sortie 2
2132
Remarque
Par exemple, dans le premier exemple, un trajet optimal est $1\to2\to3\to4\to2\to3\to1$.