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)]))