//by xiqiao
#include<bits/stdc++.h>
#define maxn 200005
using namespace std;
typedef long long ll;
int q[maxn],t[maxn],f[maxn];
int n;
bool check(int x,int y,int z){
	if(x<y && y<z)return 1;
	if(y<z && z<x)return 1;
	if(z<x && x<y)return 1;
	return 0;
}
int main(){
	scanf("%d",&n);
	for(int i=1;i<=n;i++){
		int x;scanf("%d",&x);q[x]=i;
	}
	for(int i=n-1;i;i--){
		if(t[i+1]==0){
			if(q[i]>q[i+1]){
				t[i]=1;f[i]=i+1;
			}
		}
		else if(check(q[f[i+1]],q[i],q[i+1])){
			t[i]=t[i+1];f[i]=f[i+1];
		}
		else {
			t[i]=t[i+1]+1;f[i]=i+1;
		}
	}
	printf("%d\n",t[1]);
	return 0;
}