voidjoin(int x, int y){ int a = find(x), b = find(y); fa[a] = b; }
intmain(){ int x, y, ans = 0; cin >> n >> m >> k; for (int i = 1; i <= m; ++i) { cin >> x >> y; e[x].emplace_back(y), e[y].emplace_back(x); } for (int u, v, i = n; i > k; --i) { fa[i] = u = i; for (int j = 0; j < e[u].size(); ++j) { v = e[u][j]; if (fa[v] && find(u) != find(v)) join(u, v); } } for (int u, v, i = k; i >= 1; --i) { fa[i] = u = i; for (int j = 0; j < e[u].size(); ++j) { v = e[u][j]; if (!fa[v]) continue; if (find(u) == find(v)) ++ans; else join(u, v); } } cout << ans; return0; }