#include <iostream>
#include <vector>
using namespace std;

const int MAXN=500005;

vector<int> adj[MAXN];
int col[MAXN];

void dfs(int v, int b){
	col[v]=b;
	for(int u: adj[v]){
		if(col[u]==0)
		dfs(u, b);
	}
}





int main() {
	ios_base::sync_with_stdio(false);
	cin.tie(NULL);
int n,m;
cin>>n>>m;
for(int i=0; i<m; i++){
	int a,b;
	cin>>a>>b;
	adj[a].push_back(b);
	adj[b].push_back(a);
}
int ile=0;
for(int i=1; i<n+1; i++){
	if(col[i]==0){
		ile++;
		dfs(i, ile);
	}
}

cout<<ile;

	return 0;
}