#include using namespace std; vector e[100009]; queue q; bool vis[100009]; int cnt[100009]; int dp[100009]; int main(){ memset(dp, 0x3f, sizeof dp); dp[0]=0; int n, m; scanf("%d%d", &n, &m); for (int i=1; i<=m; i++){ int u, v; scanf("%d%d", &u, &v); e[u].push_back(v); e[v].push_back(u); } for (int i=1; i<=n; i++){ if (vis[i]) continue; int num=0; q.push(i); while (q.size()){ int x=q.front(); q.pop(); if (vis[x]) continue; vis[x]=1; num++; for (int j=0; j=0; j--){ // log(n) if (cnt[i]>=(1<=0; k--) dp[k+(1<