#include <bits/stdc++.h>
#define IOS ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
using namespace std;
void dfs(int node,vector<vector<int>> &adj, vector<bool> &vis){
vis[node] = true;
for(auto &n : adj[node]){
if(!vis[n])dfs(n,adj,vis);
}
}
int countComponents(int n, vector<vector<int>>& edges) {
vector<vector<int>> adj(n);
for(auto &ed : edges){
int u = ed[0],v=ed[1];
adj[u].push_back(v);
adj[v].push_back(u);
}
vector<bool> vis(n);
int cnt = 0;
for(int i=0;i<n;i++){
if(!vis[i]){
dfs(i,adj,vis);
cnt++;
}
}
return cnt;
}
void solve() {
int n=3;
vector<vector<int>> edges={{0,1}, {0,2}};
cout<<countComponents(n,edges)<<endl;
}
int main() {
IOS;
solve();
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgSU9TIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7Y2luLnRpZSgwKTtjb3V0LnRpZSgwKTsKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnZvaWQgZGZzKGludCBub2RlLHZlY3Rvcjx2ZWN0b3I8aW50Pj4gJmFkaiwgdmVjdG9yPGJvb2w+ICZ2aXMpewogICAgICAgIHZpc1tub2RlXSA9IHRydWU7CiAgICAgICAgZm9yKGF1dG8gJm4gOiBhZGpbbm9kZV0pewogICAgICAgICAgICBpZighdmlzW25dKWRmcyhuLGFkaix2aXMpOwogICAgICAgIH0KICAgIH0KICAgIGludCBjb3VudENvbXBvbmVudHMoaW50IG4sIHZlY3Rvcjx2ZWN0b3I8aW50Pj4mIGVkZ2VzKSB7CiAgICAgICAgdmVjdG9yPHZlY3RvcjxpbnQ+PiBhZGoobik7CiAgICAgICAgZm9yKGF1dG8gJmVkIDogZWRnZXMpewogICAgICAgICAgICBpbnQgdSA9IGVkWzBdLHY9ZWRbMV07CiAgICAgICAgICAgIGFkalt1XS5wdXNoX2JhY2sodik7CiAgICAgICAgICAgIGFkalt2XS5wdXNoX2JhY2sodSk7CiAgICAgICAgfQogICAgICAgIHZlY3Rvcjxib29sPiB2aXMobik7CiAgICAgICAgaW50IGNudCA9IDA7CiAgICAgICAgZm9yKGludCBpPTA7aTxuO2krKyl7CiAgICAgICAgICAgIGlmKCF2aXNbaV0pewogICAgICAgICAgICAgICAgZGZzKGksYWRqLHZpcyk7CiAgICAgICAgICAgICAgICBjbnQrKzsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICByZXR1cm4gY250OwogICAgfQp2b2lkIHNvbHZlKCkgewogICAgaW50IG49MzsKICAgIHZlY3Rvcjx2ZWN0b3I8aW50Pj4gZWRnZXM9e3swLDF9LCB7MCwyfX07CiAgICBjb3V0PDxjb3VudENvbXBvbmVudHMobixlZGdlcyk8PGVuZGw7Cgp9CgppbnQgbWFpbigpIHsKICAgIElPUzsKICAgIHNvbHZlKCk7CiAgICByZXR1cm4gMDsKfQ==