#include using namespace std; vector touched; int find(vector & parent,int x){ touched.push_back(x); if(parent[x]==x){ return x; } return parent[x]=find(parent,parent[x]); } void junion(vector & parent,int a,int b){ int x=find(parent,a); int y=find(parent,b); parent[x]=y; } int main(){ ios_base::sync_with_stdio(0); cin.tie(0); int V,E,P; cin >> V >> E >> P; vector> All(V); for(int i=0;i>a>>b; a--; b--; All[a].push_back(b); All[b].push_back(a); } vector> G(V); for(int i=0;i parent(V); for(int i=0;i>qq; set quest; for(int rr=0;rr>k; k--; quest.insert(k); } for(auto k: quest){ for(auto neigh:G[k]){ if(quest.find(neigh)!=quest.end()){ junion(parent,k,neigh); } } } set leaders; for(auto k: quest){ auto leader=find(parent,k); leaders.insert(leader); } cout<