#include <cstdio>
#include <algorithm>
#define sf scanf
#define pf printf
#define maxn 200005
using namespace std;
int n, m, u, v;
long long f[maxn], ans;
bool vis[maxn];
int find(int x) {
if (f[x] == x) {
return x;
}
return f[x] = find(f[x]);
}
int main() {
sf("%d %d", &n, &m);
for (int i = 1; i <= n; i++) f[i] = i;
for (int i = 1; i <= n; i++) {
sf("%d %d", &u, &v);
int uu = find(u);
int vv = find(v);
if(uu != vv)
f[uu] = vv;
}
for (int i = 1; i <= n; i++) {
int x = find(i);
if (vis[x] == false) {
vis[x] = true;
ans ++;
}
}
pf("%d", ans);
return 0;
}