#include <bits/stdc++.h> using namespace std; vector<int> l[100010]; int n, m, f, s, ans, pd[100010]; void dfs(int x) { for (int y = 0; y < l[x].size(); y++) { if (!pd[l[x][y]]) { pd[l[x][y]] = 1; dfs(l[x][y]); } } } int main() { int p, q; cin >> n >> m; for (int i = 1; i <= m; i++) { cin >> p >> q; l[p].push_back(q); l[q].push_back(p); } for (int i = 1; i <= n; i++) { if (!pd[i]) { ans++; pd[i] = 1; dfs(i); } } cout << ans << endl; return 0; }