#include<bits/stdc++.h>
using namespace std;
string s;
map<int,int>T[(int)2e6];
int fa[(int)2e6],len[(int)2e6],las=0,in[(int)2e6],tot,num[(int)2e6];
int add(int to){
int p=T[las][to]=++tot;
len[p]=len[las]+1;
int np=fa[las];
int q;
for(int i=np;i!=-1;i=fa[i]){
if(!T[i][to])T[i][to]=p;
else {
np=i,q=T[i][to];
break;
}
}
if(q!=0){
if(len[q]==len[np]+1)fa[p]=q;
else {
int nq=++tot;
len[nq]=len[np]+1;
fa[nq]=fa[q];
fa[q]=nq;
fa[p]=nq;
T[nq]=T[q];
for(int i=np;i!=-1;i=fa[i]){
if(T[i][to]==q)T[i][to]=nq;
else break;
}
}
}
else fa[p]=0;
las=p;
return p;
}
long long ans=0;
int main(){
ios::sync_with_stdio(0);
cin.tie(0);
int n;
cin>>n;
fa[0]=-1;
for(int i=1;i<=n;i++){
int to;
cin>>to;
int p=add(to);
ans+=len[p]-len[fa[p]];
cout<<ans<<endl;
}
}
O2 RE
AC