Hay $N$ ciudades y $M$ carreteras bidireccionales. Las ciudades están numeradas de $1$ a $N$, y las carreteras, de $1$ a $M$. La carretera $i$ conecta las ciudades $A_i$ y $B_i$, y su longitud es $2^i$. Se garantiza que se puede llegar de cualquier ciudad a cualquier otra utilizando estas carreteras.
Snuke quiere salir a conducir. Quiere partir de la ciudad $1$, recorrer cada carretera al menos una vez y regresar a la ciudad $1$. Calcula la longitud mínima posible de su recorrido, módulo $10^9 + 7$.
Entrada
$$ \begin{gathered} N\quad M\\ A_1\quad B_1\\ \vdots\\ A_M\quad B_M \end{gathered} $$
- $2 \le N \le 400000$
- $1 \le M \le 500000$
- $1 \le A_i, B_i \le N$
- $A_i \ne B_i$
- Se puede llegar de cualquier ciudad a cualquier otra utilizando las carreteras.
- No hay dos carreteras que conecten el mismo par de ciudades.
Salida
Imprime la longitud mínima posible del recorrido de Snuke, módulo $10^9 + 7$.
Ejemplos
Entrada 1
4 5 1 2 3 4 2 3 1 3 2 4
Salida 1
70
Entrada 2
6 10 4 6 4 5 3 6 5 2 3 2 1 2 3 4 6 1 2 4 1 3
Salida 2
2132
Nota
Por ejemplo, en el ejemplo 1, un recorrido óptimo es $1 \to 2 \to 3 \to 4 \to 2 \to 3 \to 1$.