#include<bits/stdc++.h>
#define For(a,b,c) for(int a=b;a<=c;++a)
#define Dor(a,b,c) for(int a=b;a>=c;--a)
#define int long long
using namespace std;
const int N=300007;
int n,A[N],T[N];
bool ok(int t,int l,int r) {
	int n=r-l+1,h=A[l]*n-(T[l]-T[r+1]);
	return t>=h;
}
int cal(int t,int l,int r) {
	int n=r-l+1,h=A[l]*n-(T[l]-T[r+1]);
	if(!n) return 1000000000; 
	return A[l]+(t-h)/n;
}
signed main() {
	scanf("%lld",&n);
	For(i,1,n) {
		int x;
		scanf("%lld",&x);
		++A[x];
	}
	sort(A+1,A+1+n,greater<int>());
	Dor(i,n,1) T[i]=T[i+1]+A[i];
	For(i,1,n) {
		int l=1,r=i;
		while(l<=r) {
			int mi=(l+r)>>1;
			if(ok(T[i+1],mi,i)) r=mi-1;
			else l=mi+1;
		}
		printf("%lld\n",min(n/i,cal(T[i+1],l,i)));
	}
	return 0;
}