#include<bits/stdc++.h>
using namespace std;
int uf[10050];
int find0(int x)
{
int r=x;
while(uf[r]!=r)
r=uf[r];
//return r;
int i=x,j;
while(i!=r)
{
j=uf[i];
uf[i]=r;
i=j;
}
return r;
}
int union0(int x,int y)
{
int rx=find0(x),ry=find0(y);
if(rx!=ry)
uf[rx]=ry;
}
int main()
{
int n,m;
while(~scanf("%d%d",&n,&m))
{
for(int i=1; i<=n; i++)
uf[i]=i;
while(m--)
{
int v1,v2;
scanf("%d%d",&v1,&v2);
union0(v1,v2);
}
int cou=0;
for(int i=1; i<=n; i++)
if(uf[i]==i)
cou++;
printf("%d\n",cou);
}
}