#include using namespace std; #ifdef LOCAL #include "debug.h" #else #define debug(...) 42 #endif const int maxn = 4e5 + 5; vector g[maxn]; int vis[maxn]; int id; void dfs(int u) { vis[u] = id; for (int v : g[u]) if (!vis[v]) dfs(v); } int main() { ios::sync_with_stdio(0); cin.tie(0); int n, m; cin >> n >> m; for (int i = 0; i < n; i++) { int b, c; cin >> b >> c; g[b].push_back(c + m); g[c + m].push_back(b); } for (int i = 1; i <= m; i++) { if (!vis[i]) { ++id; dfs(i); } } cout << m - id << '\n'; }