#include <bits/stdc++.h>
using namespace std;
const int max_gal = 100007;
int rep[max_gal];
int ile_w[max_gal];
int ile_k[max_gal];
int Find(int a){
if(rep[a] == a){
return a;
}
rep[a] = Find(rep[a]);
return (rep[a]);
}
void Union(int a,int b){
if(Find(a) == Find(b))
{
ile_k[Find(b)]++;
}
else{
ile_k[Find(b)] += ile_k[Find(a)]+1;
ile_k[Find(a)] = 0;
ile_w[Find(b)] += ile_w[Find(a)];
ile_w[Find(a)] = 0;}
rep[Find(a)] = rep[Find(b)];
}
int main()
{
ios_base::sync_with_stdio(0);
int n,m,a,b,wyn = 1;
cin >> n >> m;
for(int i=1;i <= 100001;++i){
rep[i] =i;
ile_w[i] = 1;
ile_k[i] = 0;
}
for(int i = 0;i < m;++i)
{
cin >> a >> b;
Union(a,b);
}
set<int> czy;
for(int i = 1;i <= n;++i)
{
if(czy.find(Find(i)) == czy.end())
{
wyn += max(ile_k[Find(i)]-ile_w[Find(i)]+1,0);
czy.insert(Find(i));
}
}
cout << wyn;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgbWF4X2dhbCA9IDEwMDAwNzsKaW50IHJlcFttYXhfZ2FsXTsKaW50IGlsZV93W21heF9nYWxdOwppbnQgaWxlX2tbbWF4X2dhbF07CgoKaW50IEZpbmQoaW50IGEpewoJCglpZihyZXBbYV0gPT0gYSl7CgkJcmV0dXJuIGE7Cgl9CglyZXBbYV0gPSBGaW5kKHJlcFthXSk7CglyZXR1cm4gKHJlcFthXSk7Cn0KCnZvaWQgVW5pb24oaW50IGEsaW50IGIpewogICAgaWYoRmluZChhKSA9PSBGaW5kKGIpKQogICAgewogICAgICAgIGlsZV9rW0ZpbmQoYildKys7CiAgICB9CiAgICBlbHNlewogICAgaWxlX2tbRmluZChiKV0gKz0gaWxlX2tbRmluZChhKV0rMTsKICAgIGlsZV9rW0ZpbmQoYSldID0gMDsKICAgIGlsZV93W0ZpbmQoYildICs9IGlsZV93W0ZpbmQoYSldOwogICAgaWxlX3dbRmluZChhKV0gPSAwO30KCXJlcFtGaW5kKGEpXSA9IHJlcFtGaW5kKGIpXTsKfQoKaW50IG1haW4oKQp7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgaW50IG4sbSxhLGIsd3luID0gMTsKCiAgICBjaW4gPj4gbiA+PiBtOwoJZm9yKGludCBpPTE7aSA8PSAxMDAwMDE7KytpKXsKCQlyZXBbaV0gPWk7CiAgICAgICAgaWxlX3dbaV0gPSAxOwoJCWlsZV9rW2ldID0gMDsKICAgICAgICAKCX0KICAgIGZvcihpbnQgaSA9IDA7aSA8IG07KytpKQogICAgewogICAgICAgIGNpbiA+PiBhID4+IGI7CiAgICAgICAgVW5pb24oYSxiKTsKICAgICAgICAKICAgIH0KICAgIHNldDxpbnQ+IGN6eTsKICAgIGZvcihpbnQgaSA9IDE7aSA8PSBuOysraSkKICAgIHsKICAgIAlpZihjenkuZmluZChGaW5kKGkpKSA9PSBjenkuZW5kKCkpCiAgICAJewogICAgCQl3eW4gKz0gbWF4KGlsZV9rW0ZpbmQoaSldLWlsZV93W0ZpbmQoaSldKzEsMCk7CiAgICAJCWN6eS5pbnNlcnQoRmluZChpKSk7CiAgICAJfQogICAgICAgIAogICAgfQogICAgY291dCA8PCB3eW47Cn0=