#include<bits/stdc++.h>
using namespace std;
int ar[1000005];
int inf=1e9;
struct fenwick{
int info[1000005];
void upd(int id,int val){
if(id==0)return;
for(int i=id;i<=1e6;i+=i&-i)info[i]+=val;
}
int fans(int id){
int ans=0;
for(int i=id;i>0;i-=i&-i)ans+=info[i];
return ans;
}
}fw;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(0);
int n;cin>>n;
for(int i=1;i<=n;i++)cin>>ar[i];
for(int i=1;i<=n;i++){
fw.upd(ar[i],1);
}
int ans=0;
for(int i=n;i>=1;){
int mx=ar[i],mn=ar[i];
//cerr<<"i:"<<i<<"\n";
int cur=i;
while(i>=1){
if(ar[i]>ar[i+1]&&i!=cur)break;
mn=min(mn,ar[i]);
int val=fw.fans(mx-1)-fw.fans(mn);
if(val>0){
break;
}
fw.upd(ar[i],-1);
i--;
}
ans++;
if(i==0)break;
}
cout<<ans;
}