#include #include #include #include using namespace std; using namespace atcoder; int main(){ int n,m; cin>>n>>m; vector> cnt(n); dsu uf(m); int ans=0; for(int i=0;i>b>>c; b--;c--; cnt[c].insert(b); } for(int i=0;i s; for(auto v:cnt[i]){ s.insert(uf.leader(v)); } ans+=max(0,(int)s.size()-1); for(auto v:s){ uf.merge(*s.begin(),v); } } cout<