#include
#include
#include
#include
using namespace std;
vector<vector> a;
vector vis;
int n,m;
stack sta;
void DFS(int x)
{
if (vis[x]==1)
{
return ;
}
vis[x]=1;
for (int i : a[x])
{
DFS(i);
}
}
int main()
{
cin>>n>>m;
vis.resize(n);
a.resize(n);
for (int i=0;i<m;i++)
{
int b,c;
cin>>b>>c;
a[b].push_back(c);
a[c].push_back(b);
}
int cnt=0;
for (int i=0;i<n;i++)
{
if(vis[i]==0)
{
cnt++;
DFS(i);
}
}
cout<<cnt;
return 0;
}