#Z-Transform def Multiple_Zeta_Transform(A): N=len(A)-1 S=[1]*(N+1) for p in range(2,N+1): if S[p]: for k in range(N//p,0,-1): S[k*p]=0 A[k]+=A[k*p] N=int(input()) A=list(map(int,input().split())) alpha=max(A) T=[0]*(alpha+1) for a in A: T[a]+=1 Multiple_Zeta_Transform(T) X=[0]*(N+1) for a in range(alpha+1): X[T[a]]=a for i in range(N-1,0,-1): X[i]=max(X[i],X[i+1]) print("\n".join(map(str,X[:0:-1])))