#include #define N 100005 using namespace std; int n,m,cnt,tot[N],ylc[N],cx[N],f[N]; bool vis[N]; vectorv[N]; void dfs(int k) { if(vis[k]) return; vis[k]=1; cnt++; for(int now:v[k]) dfs(now); return; } int main() { ios::sync_with_stdio(0); cin.tie(0),cout.tie(0); cin>>n>>m; for(int i=1;i<=m;i++) { int x,y; cin>>x>>y; v[x].push_back(y); v[y].push_back(x); } for(int i=1;i<=n;i++) { if(vis[i]) continue; cnt=0; dfs(i); tot[cnt]++; } m=0; for(int i=1;i<=n;i++) { for(int j=0;(1<=ylc[i];j--) { f[j]=min(f[j],f[j-ylc[i]]+cx[i]); } } for(int i=1;i<=n;i++) cout<<((f[i]>n)?-1:f[i]-1)<<"\n"; return 0; } /* ?????????????? ????? n??? sqrtn ? xjb ???????????? */