Cientistas estão estudando a conectividade de redes representadas por
grafos. Dado um grafo simples e não direcionado com N vértices numerados
de 1 a N e M arestas numeradas de 1 a M, eles desejam saber
quantos componentes conexos ele possui. A aresta i
conecta os vértices
e
.
Uma componente conexa é um subgrafo no qual todos os seus vértices
são alcançáveis entre si.
Notas
- Um grafo simples e não direcionado é um grafo onde as arestas não
possuem direção e não existem laços ou arestas
múltiplas.
- Um grafo é simples se e somente se não possui
auto-laços (arestas de um vértice para ele mesmo) nem arestas
duplicadas.
- Um subgrafo é formado por um subconjunto de vértices e/ou arestas do
grafo original.
- Um grafo é conexo se e somente se é possível viajar
entre qualquer par de vértices usando as arestas disponíveis.
- Uma componente conexa é um subgrafo conexo maximal,
ou seja, que não está contido em nenhum subgrafo conexo maior.
Constraints
- (
)
- (
)
- (
)
- O grafo é simples (sem laços ou arestas repetidas).
- Todos os valores da entrada são inteiros.
A entrada segue o formato:
N M
u1 v1
u2 v2
...
uM vM
Output
Imprima o número de componentes conexas do grafo.
Exemplo
Entrada 1
5 3
1 2
1 3
4 5
Saída 1
2
O grafo dado contém as seguintes duas componentes conexas:
- um subgrafo formado pelos vértices 1, 2, 3 e pelas arestas 1,
2;
- um subgrafo formado pelos vértices 4, 5 e pela aresta 3.

Entrada 2
5 0
Saída 2
5
Entrada 3
4 6
1 2
1 3
1 4
2 3
2 4
3 4
Saída 3
1