#include<bits/stdc++.h>
using namespace std;
const int oo = 1e9 + 7;
const int N = 1e5 + 7;
int n,m;
bool vis[N];
vector<int>v[N];
void bfs(int s){
queue<int>q;
q.push(s);
vis[s] = 1;
while(!q.empty()){
int u = q.front();
q.pop();
for(auto x : v[u]){
if(!vis[x]){
vis[x] = 1;
q.push(x);
}
}
}
}
signed main(){
ios_base::sync_with_stdio(0); cin.tie(0);
cin >> n >> m;
for(int i=1; i <= m; i++){
int a,b; cin >> a >> b;
v[a].push_back(b);
v[b].push_back(a);
}
int cnt = 0;
for(int i=1; i<=n; i++){
if(!vis[i]){
cnt++;
bfs(i);
}
}
cout << cnt;;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBvbyA9IDFlOSArIDc7CmNvbnN0IGludCBOID0gMWU1ICsgNzsKCmludCBuLG07CmJvb2wgdmlzW05dOwp2ZWN0b3I8aW50PnZbTl07Cgp2b2lkIGJmcyhpbnQgcyl7CiAgICBxdWV1ZTxpbnQ+cTsKICAgIHEucHVzaChzKTsKCiAgICB2aXNbc10gPSAxOwoKICAgIHdoaWxlKCFxLmVtcHR5KCkpewogICAgICAgIGludCB1ID0gcS5mcm9udCgpOwogICAgICAgIHEucG9wKCk7CgogICAgICAgIGZvcihhdXRvIHggOiB2W3VdKXsKICAgICAgICAgICAgaWYoIXZpc1t4XSl7CiAgICAgICAgICAgICAgICB2aXNbeF0gPSAxOwogICAgICAgICAgICAgICAgcS5wdXNoKHgpOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgpzaWduZWQgbWFpbigpewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsKCiAgICBjaW4gPj4gbiA+PiBtOwoKICAgIGZvcihpbnQgaT0xOyBpIDw9IG07IGkrKyl7CiAgICAgICAgaW50IGEsYjsgY2luID4+IGEgPj4gYjsKICAgICAgICB2W2FdLnB1c2hfYmFjayhiKTsKICAgICAgICB2W2JdLnB1c2hfYmFjayhhKTsKICAgIH0KCiAgICBpbnQgY250ID0gMDsKCiAgICBmb3IoaW50IGk9MTsgaTw9bjsgaSsrKXsKICAgICAgICBpZighdmlzW2ldKXsKICAgICAgICAgICAgY250Kys7CiAgICAgICAgICAgIGJmcyhpKTsKICAgICAgICB9CiAgICB9CgogICAgY291dCA8PCBjbnQ7Owp9Cg==