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) Bcnt=[] W=set() B=set() R=set() B.add(0) for i in range(1,N): W.add(i) for i in range(N): 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 len(B)==1 and 0 in B: break else: Bcnt.append(len(B)) for j in range(N-(i+1)): print(Bcnt[j%len(Bcnt)])