#include<iostream>
#include<algorithm>
using namespace std;
const long long N=2e5+5;
long long n;
struct node{
long long a,w;
}a[N];
bool cmp(node s1,node s2){
return s1.a<=s2.a;
}
pair<long long,long long> s[N];
long long ss;
long long ans;
bool pd;
long long last;
long long minn,maxx;
int main(){
cin>>n;
for(int i=1;i<=n;i++){
cin>>a[i].a;
a[i].w=i;
}
sort(a+1,a+1+n,cmp);
for(int i=1;i<=n+1;i++){
if(i==1) maxx=a[i].w,minn=a[i].w;
if(a[i].a!=a[i-1].a||i==n+1){
ss++;
s[ss].second=maxx,s[ss].first=minn;
maxx=a[i].w,minn=a[i].w;
}
else if(a[i].a==a[i-1].a) maxx=max(maxx,a[i].w),minn=min(minn,a[i].w);
}
last=0;
for(int i=1;i<ss;i++){
long long first=min(s[i].first,s[i].second),second=max(s[i].first,s[i].second);
if(pd==0){
if(second<last) last=first;
else{
last=second;
ans++;
pd=1;
}
}
else{
if(first>last) last=second;
else{
last=first;
pd=0;
}
}
}
cout<<ans;
return 0;
}