from collections import defaultdict N,M=map(int,input().split()) G=[[]for _ in range(N)] for _ in range(M): u,v=map(int,input().split()) u-=1;v-=1 G[u].append(v) G[v].append(u) Bset=defaultdict(int) Blist=[] W=set() B=set() R=set() B.add(0);Blist.append(sorted(B)) Bset[tuple(sorted(B))]=0 for i in range(1,N): W.add(i) for i in range(1,N+1): tmp=set() for u in W: for v in G[u]: if v in B: tmp.add(u);R.add(u);break W-=tmp W|=B B.clear() B|=R R.clear() print(len(B)) if tuple(sorted(B)) in Bset.keys(): l=Bset[tuple(sorted(B))] break else: Bset[tuple(sorted(B))]=i Blist.append(sorted(B)) for j in range(1,N-i+1): print(len(Blist[l+j%(len(Blist)-l)]))