#include <bits/stdc++.h>
using namespace std;
const int N=5e5+10;
int n,x,ans,dig[N];
int a[N],dp[N];
vector<int> num[N];
vector<int> mx;
int mv;
int main(){
cin>>n;
mv=0;
for(int i=1;i<=n;i++){
cin>>x;
dig[i]=x;
num[x].push_back(i);
}
for(int i=1;i<=n;i++){
dp[i]=mv;
if(num[dig[i]].size()>=2 and num[dig[i]][1]==i){
cout<<mv<<" "<<i<<" "<<2+dp[num[dig[i]][0]]<<endl;
if(mv<2+dp[num[dig[i]][0]]){
if(mx.empty()){
mv=2+dp[num[dig[i]][0]];
mx.push_back(dig[i]);
dp[i]=mv;
}
for(int j=0;j<mx.size();j++){
if(mx[j]!=dig[i]){
mx.clear();
mx.push_back(dig[i]);
mv=2+dp[num[dig[i]][0]];
dp[i]=mv;
break;
}
}
}else if(mv==2+dp[num[dig[i]][0]]){
mx.push_back(dig[i]);
}
num[dig[i]].erase(num[dig[i]].begin());
if(dp[i]!=dp[i-1])num[dig[i]].erase(num[dig[i]].begin());
}
}
int ans=0;
for(int i=1;i<=n;i++) cout<<dp[i]<<" ";
cout<<mv;
return 0;
}