//最长连续不重复子序列
#include<iostream>
using namespace std;
const int N=1e6+10;
int a[N],s[N];
int main(){
int n;cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
int res=0;
for(int i=0,j=0;i<n;i++){
s[a[i]]++;
while(s[a[i]]>1){
s[a[j]]--;
j++;
}
res=max(res,i-j+1);
}
cout<<res<<endl;
return 0;
}
//最长连续上升子序列
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N],f[N];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
f[0]=1;
for(int i=1;i<n;i++){
if(a[i]>a[i-1]) f[i]=f[i-1]+1;
else f[i]=1;
}
sort(f,f+n);
cout<<f[n-1]<<endl;
return 0;
}
//最长上升子序列
#include<iostream>
#include<algorithm>
using namespace std;
const int N=1e5+10;
int a[N],f[N];
int main(){
int n;
cin>>n;
for(int i=0;i<n;i++) cin>>a[i];
f[0]=1;
for(int i=1;i<n;i++){
for(int j=0;j<i;j++){
if(a[i]>a[j]) f[i]=max(f[i],f[j]+1);
}
}
sort(f,f+n);
cout<<f[n-1]<<endl;
return 0;
}