Loops Goop

O sol da Ilha Delfino funciona com Shine Sprites: as estrelinhas cuja luz mantém o balneário brilhante e quente. Por isso, quando Bowser Jr., disfarçado de Shadow Mario, resolveu vandalizar a ilha com seu Pincel Mágico, tudo veio abaixo: ele lambuzou mm traços de goop mágico pelas passarelas e tubulações que ligam seus nn pontos, os Shine Sprites fugiram do desastre e a Praça Delfino se apagou.

Então Mario pega o FLUDD, uma mochila-bomba de água, e sai para deixar a ilha reluzente, ponto por ponto. O goop vem em muitas cores, e o goop de uma mesma cor forma uma trilha: uma sucessão de traços de um ponto a outro que nunca passa duas vezes pelo mesmo traço. Um jato de água do FLUDD lava uma trilha inteira sem problema, de modo que uma cor sozinha nunca é uma dor de cabeça.

As misturas são outra história. Onde o goop de duas cores se enlaça formando um circuito fechado, as duas cores reagem entre si, e a reação torna impossível limpá-lo. Somente a luz de um Shine Sprite consegue deter a reação do circuito fechado. Por sorte, a reação é delicada: se uma terceira cor faz parte do circuito, ela envenena a reação e a apaga. Uma mancha realmente teimosa é sempre obra de exatamente duas cores.

Aqui se veem três circuitos fechados: VERMELHO-AZUL, VERMELHO-AMARELO e AZUL-AMARELO. São necessários 3 Shine Sprites para deter as reações.

Antes que Mario se esgote, o Conselho Pianta quer um relatório: quantos desses redemoinhos de duas cores espreitam na ilha, para saber quantos Shine Sprites reunir. Formalmente, um par de cores (e,f)(e, f) é perigoso se, usando unicamente os traços dessas duas cores, é possível percorrer um circuito fechado. Ajude Mario a contar quantos pares de cores são perigosos.

Entrada

A primeira linha contém dois inteiros nn e mm: a quantidade de pontos e de traços de goop (0≤n≤1040 \leq n \leq 10^4, 0≤m≤1040 \leq m \leq 10^4).

Cada uma das mm linhas seguintes contém três inteiros uiu_i, viv_i e cic_i: um traço de cor cic_i entre os pontos uiu_i e viv_i (1≤ui,vi≤n1 \leq u_i, v_i \leq n, ui≠viu_i \neq v_i, 1≤ci≤m1 \leq c_i \leq m).

Dois traços distintos podem unir o mesmo par de pontos, desde que sejam de cores diferentes. Os traços de uma mesma cor formam um caminho simples.

Saída

Imprima um único inteiro: a quantidade de pares não ordenados de cores (e,f)(e, f) com e≠fe \neq f que são perigosos.

Exemplos

Entrada

4 5
1 2 1
2 3 1
3 4 2
4 1 2
1 3 3

Saída

3

Entrada

5 4
1 2 1
2 3 1
3 4 2
4 5 2

Saída

0