#include<bits/stdc++.h>
using namespace std;
#define int long long
const int N=2e6+10;
vector<int> nxt;
int s[N],ans[N],val[N],p[N];
int n;
vector<int> getnxt() {
vector<int> pi(n);
for (int i = 1; i < n; i++) {
int j = pi[i - 1];
while (j > 0 && p[i] != p[j]) j = pi[j - 1];
if (p[i] == p[j]) j++;
pi[i] = j;
}
return pi;
}
void KMP_Count() {
for(int i = 0, j = 0; i < n; ++i){
while(j && s[i] != p[j]) j = nxt[j-1];
if(s[i] == p[j]) j++;
val[j]++;
}
}
int32_t main(){
scanf("%lld",&n);
for(int i=0;i<n;i++) scanf("%lld",&p[i]);
for(int i=0;i<n;i++) s[i]=p[n-i-1];
nxt=getnxt();KMP_Count();
for(int i=n;i>=1;i--) val[nxt[i-1]]+=val[i];
for(int i=1;i<=n;i++){
cout<<val[i]<<" ";
} cout<<endl;
}
02-12
496
02-22
1378
10-17
767