링크 : https://www.acmicpc.net/problem/11724
/*
문제 : 연결 요소의 개수
링크 : https://www.acmicpc.net/problem/11724
*/
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool arr[1001][1001];
bool visited[1001];
int N, M;
void dfs(int n){
visited[n] = true;
for(int i = 1; i <= N; i++){
if(arr[n][i] && !visited[i]) dfs(i);
}
}
int main(){
cin >> N >> M;
int result = 0;
for(int i = 0; i < M; i++){
int a, b;
cin >> a >> b;
arr[a][b] = true;
arr[b][a] = true;
}
for(int i = 1; i <= N; i++){
if(!visited[i]){
result++;
dfs(i);
}
}
cout << result << '\n';
return 0;
}