Territórios Protegidos

Com o objetivo de melhorar a segurança de seus territórios, o rei da Nlogônia decidiu contratar vigilantes. O pagamento do serviço é em barras de ouro, e o cálculo da quantidade necessária é um tanto peculiar.

Um território é composto por um conjunto de povoados que são representados por um identificador único inteiro. Se existe um caminho de uu para vv, então o mesmo caminho é válido de vv para uu, e ambos estão no mesmo território. O custo para a melhoria da segurança de um único território é calculado a partir da operação OROR entre todos os identificadores únicos dos povoados que compõem esse território.

Como o reino possui inúmeras terras e os valores podem ser bastante elevados, o rei propôs uma aposta para a empresa que gerencia os seguranças, de modo que o preço pode aumentar substancialmente ou diminuir consideravelmente: depois de calcular o valor para cada território, é aplicada a operação XORXOR entre todos esses valores, sendo este o novo preço a ser cobrado.

A sua tarefa é calcular o novo preço.

Entrada

A entrada é composta por um único caso de teste.

A primeira linha possui dois números inteiros NN e MM (1N2*1051 \leq N \leq 2 * 10^5, 0Mmin((N*(N1)/2),2*106)0 \leq M \leq min((N * (N - 1) / 2), 2 * 10^6)), representando o número de povoados (com identificadores de 11 a NN) e o número de conexões entre os povoados, respectivamente.

As próximas MM linhas possuem dois números inteiros uiu_i e viv_i, representando a conexão entre os dois povoados uiu_i e viv_i.

Saída

A saída é composta por um único valor inteiro: o preço total do serviço.

Dica: Na linguagem C, os operadores binários (considere a e b números arbitrários):
OROR: a|b
XORXOR: a^b

Exemplos

Exemplo de entrada

8 10
1 2
2 3
4 5
1 4
5 3
5 2
5 1
6 7
7 8
8 6

Saída para o exemplo acima

8

Explicação: Temos dois territórios distintos: {{1,2,3,4,51, 2, 3, 4, 5}, {6,7,86, 7, 8}}. Primeiro, é calculado o preço resultante para cada território aplicando a operação OROR, resultando em 77 e 1515. Para o preço final, aplicamos a operação XORXOR entre os valores obtidos. Logo, a resposta é 88.

Árvore do primeiro exemplo

Exemplo de entrada

3 0

Saída para o exemplo acima

0

Note que um povoado isolado é considerado um território.

Árvore do segundo exemplo

Exemplo de entrada

10 7
1 2
2 3
3 4
5 6
6 7
7 8
9 10

Saída para o exemplo acim

3