#include<bits/stdc++.h>
using namespace std;
const int N=1e5+10,L=20;
int n,m,f1[N][L],f2[N][L],a[N],lg[N],b1[N],len1,b2[N],len2;
int main(){
int i,j,k,x=1,y;
cin>>n;
y=n;
for(i=1;i<=n;i++)cin>>a[i];
for(i=2;i<=n;i++)lg[i]=lg[i/2]+1;
for(j=0;j<L;j++){
for(i=1;i+(1<<j)-1<=n;i++){
if(j==0){
f1[i][j]=a[i];
f2[i][j]=a[i];
}else{
f1[i][j]=max(f1[i][j-1],f1[i+(1<<j-1)][j-1]);
f2[i][j]=min(f2[i][j-1],f2[i+(1<<j-1)][j-1]);
}
}
}k=lg[y-x+1];
int p1=min(f2[k][x],f2[y-(1<<k)+1][k]),p2=max(f1[k][x],f1[y-(1<<k)+1][k]);
for(i=1;i<=n;i++){
if(a[i]==p1){
len1++;
b1[len1]=i;
}
}for(i=1;i<=n;i++){
if(a[i]==p2){
len2++;
b2[len2]=i;
}
}
/*
for(i=1;i<=len1;i++)cout<<b1[i]<<" ";
cout<<endl;
for(i=1;i<=len2;i++)cout<<b2[i]<<" ";
cout<<endl;
*/
int maxx=0;
for(i=1;i<=len1;i++){
for(j=1;j<=len2;j++){
if(b2[j]>b1[i]){
maxx=max(maxx,b2[j]-b1[i]+1);
}
}
}cout<<maxx;
return 0;
}