from collections import defaultdict as D I=int;f=lambda:map(I,raw_input().split());R=range;N,M=f();P=R(N+1) def r(x): while x^P[x]:P[x]=x=P[P[x]] return x Cc=D(I);Cn=D(I);A=[N]*(N+1);A[0]=0 for i in R(M):u,v=map(r,f());P[u]=v for i in R(N):Cc[r(i+1)]+=1 for v in Cc.values():Cn[v]+=1 for v,n in Cn.items(): m=1 while n>0: m=min(m,n);w=v*m for j in R(N,w-1,-1):A[j]=min(A[j],A[j-w]+m) n-=m;m*=2 for i in R(N):print A[i+1]*(A[i+1]