Sanduíche

Uma nova lanchonete abriu na cidade, prometendo um menu com a maior variedade de sanduíches da região. A cada dia o Chef de cozinha compra NN ingredientes distintos e prepara o menu usando esses NN ingredientes. Infelizmente não é possível ter sanduíches com qualquer combinação de ingredientes: a cada dia o Chef determina que MM pares de ingredientes não podem ser utilizados no mesmo sanduíche, porque ele considera que esses ingredientes “não combinam”.

Por exemplo, suponha que num determinado dia NN é igual a quatro e os ingredientes são queijo, presunto, goiabada e azeitona, e MM é igual a dois: os pares (goiabada, presunto) e (azeitona, goiabada) não podem ser utilizados no mesmo sanduíche. Nesse dia, alguns dos sanduíches que podem ser feitos são:

Alguns dos sanduíches que não podem ser feitos são:

Dados os NN ingredientes e os MM pares de ingredientes que não combinam, sua tarefa é determinar qual o máximo número de sanduíches diferentes que podem ser feitos. Dois sanduíches AA e BB são considerados diferentes se AA contém um ingrediente XX que não está presente em BB ou se BB contém um ingrediente YY que não está presente em AA. Um sanduíche deve conter ao menos um ingrediente.

Entrada

A primeira linha contém dois números inteiros NN e MM, indicando respectivamente o número de ingredientes e o número de pares de ingredientes que não combinam. Os ingredientes são identificados por números de 11 a NN. Cada uma das MM linhas seguintes contém dois números inteiros XX e YY que representam um par de ingredientes que não combinam.

Saída

Seu programa deve produzir uma única linha, o número de sanduíches diferentes que podem ser feitos.

Restrições

Informações sobre a pontuação

Exemplos

Exemplo de entrada 1

3 2
2 3
1 2

Exemplo de saída 1

4

Exemplo de entrada 2

3 0

Exemplo de saída 2

7

Exemplo de entrada 3

3 3
1 2
2 3
1 3

Exemplo de saída 3

3