#include <cstdio>
#include <iostream>
#include <vector>
#include <algorithm>
#include <stdio.h>
#include <cstring>
#include <stack>
#include <queue>
using namespace std;
const int MAXN = 100000;
int HASH[MAXN]; // 存放每个数字的位置,用于交换
int N;
int sequence[MAXN];
int pos_zero = -1;
int cnt = 0;
int base = 1;
int main(){
// printf("123\n");
fill(HASH, HASH+MAXN, 0);
scanf("%d",&N);
for (int i = 0; i < N; ++i)
{
scanf("%d",&sequence[i]);
HASH[sequence[i]] = i;
}
while(true){
pos_zero = HASH[0];
while ( pos_zero != 0){
swap(sequence[pos_zero],sequence[HASH[pos_zero]]);
swap(HASH[pos_zero],HASH[0]);
pos_zero = HASH[0];
cnt++;
}
int var = 0;
bool flag = true;
for(int i=base;i<N;i++){
if(HASH[i] != i){
var = i;
flag = false;
break;
}
}
if(flag){
printf("%d\n",cnt );
return 0;
}
cnt++;
base = var+1;
swap(sequence[var],sequence[HASH[var]]);
swap(HASH[var],HASH[0]);
}
}