include[HTML_REMOVED]
using namespace std;
const int N=1e5+10;
int p[N];
bool st[N];//标记祖宗元素 看是不是有环
int find(int x)
{
if(p[x]!=x)p[x]=find(p[x]);
return p[x];
}
int n,m;
int main()
{
for(int i=1;i[HTML_REMOVED]>n>>m;
while(m–)
{
int a,b;
cin>>a>>b;
int fa=find(a),fb=find(b);
if(fa==fb)
{
st[fa]=true;
}
else
{
p[fa]=fb;
st[fb]=st[fb]|st[fa];//fb为新的祖宗节点
}
}
int res=0;
for(int i=1;i<=n;i++)
{
if(p[i]==i&&!st[i])res++;//如果一个点父亲还是自己 并且没被标记 说明这个点没在自环内 是分量 因为自环内都被标记了这个点就是树根
}
cout<<res;
}
// 5 5
// 2 1
// 1 3
// 2 3
// 2 5
// 4 3 这组样例 1 2 3 4 5祖先分别是3 3 5 5 5
//对于第四个2 5输入 原本2的祖先是3 3被标记st 然后这组输入使5成为3的祖先 5被标志成为新的集合祖宗节点