//时间复杂度不是O(N)
#include<bits/stdc++.h>
using namespace std;int main(){
int n;
cin>>n;
int max=1;//最终的返回结果
map<int, int> hashMap;//key的含义为数组的值,value的含义为这个值最近一次出现在数组中的下标
int *arr=new int[n];
int len=0;
for(int i=0;i<n;i++)
{
cin>>arr[i];
if(hashMap.find(arr[i])==hashMap.end()){//说明之前没有这个数,也就是不会重复
len++;
max=len>max?len:max;
hashMap[arr[i]]=i;
}
else{//说明之前已经有过arr[i]了,重复了
len=i-hashMap[arr[i]];
int j=hashMap[arr[i]];//获取上次出现的下标
hashMap.clear();//清空哈希表
for(j=j+1;j<=i;j++)
hashMap[arr[j]]=j;
}
}
cout<<max<<endl;
return 0;
}