Pizzas

Time Limit:
1 Sec
Memory Limit:
128Mb
Enviados:
0
Resuelto:
0

Descripción


Matías es un chef de renombre, últimamente se ha estado especializando en pizzas.

Habiendo preparado y probado cientos de pizzas, Matías anotó pares de ingredientes (representados por números enteros) que tienen el mismo sabor.

Esta relación de sabores iguales es transitiva y, a veces por flojera, Matías omite pares que ya están representados por el resto de las notas; por ejemplo, si anotó que los pares $(1, 2)$ y $(2, 3)$ tienen el mismo sabor, puede no anotar el par $(1, 3)$ porque se puede deducir que si $1$ sabe igual a $2$ y $2$ sabe igual a $3$, entonces $1$ sabe igual a $3$.

Sus amigos, Javier, Víctor y Lalo, se reunieron con Matías a hacer pizzas y se les ocurrió la siguiente estrategia:


   (1) Poner todos los ingredientes en una lista ordenada aleatoriamente
   (2) Revisar los ingredientes uno por uno en el orden de la lista
   (3) Si el ingrediente actual aportaría un sabor nuevo a la pizza según las notas de Matías y los ingredientes ya usados, se lo añade a la pizza. Si no, no se lo añade.
 

Pronto se dieron cuenta, decepcionados, de que todas las pizzas que preparaban sabían igual; pero Víctor, siendo el informático del grupo, se interesó más por la cantidad total de pizzas diferentes que podrían hacer con su estrategia. Dos pizzas se consideran diferentes si los conjuntos de ingredientes usados de ambas son distintos.

Víctor calculó el valor rápidamente y quiere confirmar la respuesta contigo. Dada la cantidad de ingredientes y las notas de Matías, calcular la cantidad de pizzas diferentes que se pueden formar módulo $10^9+7$ usando la estrategia.

Entrada


La primera línea contiene dos enteros $n$ $(1 \leq n \leq 10^5)$ y $m$ $(0 \leq m \leq \min(\frac{n(n-1)}{2}, 10^5))$, indicando la cantidad total de ingredientes y el número de pares en las notas de Matías.

Las siguientes $m$ líneas contienen dos enteros $a_i$, $b_i$ $(1 \leq a_i, b_i \leq n, a_i \neq b_i)$ cada una, indicando que el ingrediente $a_i$ tiene el mismo sabor que el ingrediente $b_i$ y viceversa. No existen pares repetidos en las notas de Matías.
 

Salida

Un número entero, indicando la cantidad de pizzas diferentes que se pueden formar módulo $10^9+7$ usando la estrategia descrita.

(7 puntos) $m = n-1$; $a_i = i, b_i = i+1$ para $1 \leq i \leq m$.

(26 puntos) Cada ingrediente aparece como máximo 1 vez en las notas de Matías.

(67 puntos) Sin restricciones adicionales.

Ejemplo Entrada

Copy icon
5 3
1 3
2 4
3 5

20 9
1 9
2 6
2 16
6 20
7 13
8 15
10 20
16 18
17 18

Ejemplo Salida

Copy icon
6

56

Ayuda

En el primer caso de ejemplo se pueden formar pizzas con los siguientes conjuntos de ingredientes: $\{1, 2\}$, $\{1, 4\}$, $\{3, 2\}$, $\{3, 4\}$, $\{5, 2\}$, $\{5, 4\}$. Nótese que los ingredientes $1$ y $5$ tienen el mismo sabor (que es igual al sabor de $3$), por lo que no se pueden usar juntos en una misma pizza. Una posible forma de hacer una pizza con los ingredientes $\{3, 2\}$ es con la siguiente lista de ingredientes (luego de ordenarla aleatoriamente): $[3, 5, 2, 1, 4]$. En este caso, $3$ aporta un sabor nuevo y se añade; $5$ tiene el mismo sabor que $3$, así que no se añade; $2$ aporta un sabor nuevo y se añade; $1$ tiene el mismo sabor que $3$, así que no se añade; $4$ tiene el mismo sabor que $2$, así que no se añade.