#include<bits/stdc++.h>
using namespace std;
#define ll long long
#define ld long double
#define forr(X) for(int i = 0; i<X; i++)
int n, m;
vector <int> a[100005];
int vis[100005];
void dfs(int x){
if (vis[x])return;
else if(vis[x]==0){
vis[x]=1;
for(auto it:a[x]){
//cout<<1;
dfs(it);
}
}
}
int main(){
freopen("dfs.in", "r", stdin);
freopen("dfs.out", "w", stdout);
cin>>n>>m;
int x, y;
for(int i = 1; i <= m; i++){
cin>>x>>y;
a[x].push_back(y);
a[y].push_back(x);
}
//cout<<a[1][0]<<" "<<a[2][0]<<endl;
int cnt = 0;
//cout<<"cnt: ";
for(int i =1; i<=n; i++){
if(vis[i] == 0){
cnt++;
dfs(i);
//cout<<cnt<<' ';
}
}
cout<<cnt;
}