#include<iostream> //双指针算法On
#include<cstdio>
#include<cstring>
using namespace std;
const int N=1e5+10;
int q[N],s[N];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>q[i];
int res=0;
for(int i=0,j=0;i<n;i++){ //枚举尾巴 计算合理开头
s[q[i]]++; //每过一个q【i】 在s[N]中记录一下
while(j<i&&s[q[i]]>1) s[q[j++]]--; //每到遇到重复元素 j++一直向右走到不重复 左边部分子串抛弃
res=max(res,i-j+1); //更新最大区间值 每回都会得到一个区间值
}
cout<<res;
puts("");
return 0;
}