/*In Search Of Life*/
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<queue>
#include<iomanip>
#include<stack>
#include<map>
#include<set>
#include<cmath>
#define debug(x) cerr<<#x<<"="<<x<<endl
#define INF 0x7f7f7f7f
#define llINF 0x7fffffffffffll
using namespace std;
typedef pair<int,int> pii;
typedef long long ll;
inline int init()
{
int now=0,ju=1;char c;bool flag=false;
while(1)
{
c=getchar();
if(c==‘-‘)ju=-1;
else if(c>=‘0‘&&c<=‘9‘)
{
now=now*10+c-‘0‘;
flag=true;
}
else if(flag)return now*ju;
}
}
inline long long llinit()
{
long long now=0,ju=1;char c;bool flag=false;
while(1)
{
c=getchar();
if(c==‘-‘)ju=-1;
else if(c>=‘0‘&&c<=‘9‘)
{
now=now*10+c-‘0‘;
flag=true;
}
else if(flag)return now*ju;
}
}
int n,m,auxa[10005],auxsort[10005],auxb[10005],auxval[10005],sa[10005],height[10005],rank[10005];
char str[10005];
int ans[5000505];
int c[10005];
int cnt=0;
void getsa()
{
int *x=auxa,*y=auxb,t,cnt=0;m=256;
for(int i=1;i<=n;i++)auxsort[x[i]=str[i]]++;
for(int i=2;i<=m;i++)auxsort[i]+=auxsort[i-1];
for(int i=n;i>=1;i--)sa[auxsort[x[i]]--]=i;
for(int j=1;cnt<n;j<<=1,m=cnt)
{
cnt=0;
for(int i=n-j+1;i<=n;i++)y[++cnt]=i;
for(int i=1;i<=n;i++)if(sa[i]-j>0)y[++cnt]=sa[i]-j;
for(int i=1;i<=n;i++)auxval[i]=x[y[i]];
for(int i=0;i<=m;i++)auxsort[i]=0;
for(int i=1;i<=n;i++)++auxsort[auxval[i]];
for(int i=2;i<=m;i++)auxsort[i]+=auxsort[i-1];
for(int i=n;i>=1;i--)sa[auxsort[auxval[i]]--]=y[i];
swap(x,y);cnt=x[sa[1]]=1;
for(int i=2;i<=n;i++)
{
if(y[sa[i]]==y[sa[i-1]]&&y[sa[i]+j]==y[sa[i-1]+j])x[sa[i]]=cnt;
else x[sa[i]]=++cnt;
}
}
for(int i=1;i<=n;i++)rank[sa[i]]=i;
cnt=0;
for(int i=1;i<=n;i++)
{
if(rank[i]==1)continue;
if(cnt)cnt--;
int j=sa[rank[i]-1];
while(str[i+cnt]==str[j+cnt])++cnt;
height[rank[i]]=cnt;
}
return;
}
int main()
{
n=init();scanf("%s",str+1);
getsa();
for(int i=n;i>=1;i--)
{
for(int j=1;j<=height[i+1];j++)
{
c[j]++;
}
for(int j=n;j>=height[i+1]+1;j--)
{
if(c[j]>1)ans[++cnt]=c[j];
c[j]=1;
}
}
for(int j=n;j>=1;j--)
{
if(c[j]>1)ans[++cnt]=c[j];
}
for(int i=cnt;i>=1;i--)printf("%d\n",ans[i]);
return 0;
}