#include <bits/stdc++.h>
#define FOR(i,a,b) for(int i = a; i < b;++i)
#define pi pair<int,int>
#define pb push_back
using namespace std;
const int maxn = 5005;
int pref[maxn][maxn],f[maxn][maxn],dp[maxn],gdzie[maxn];
int oblicz(int px,int kx,int py,int ky){
return (pref[kx][ky] - pref[px - 1][ky] - pref[kx][py - 1] + pref[px - 1][py - 1]);
}
int funkcja(int a,int b,int n){
int suma = 0;
for(int i = a; i >= b;--i){
int dol = pref[i][i - 1] - pref[i][b - 1];
int gora = pref[i][n] - pref[i][a];
suma+=gora + dol;
}
return suma;
}
int main(){
cin.tie(0);
ios_base::sync_with_stdio(0);
int n;
cin>>n;
FOR(i,0,n){
int x;
cin>>x;
gdzie[x] = i;
}
FOR(i,1,n + 1){
FOR(j,1,n + 1){
int wart = 0;
if(gdzie[j] < gdzie[i]){wart = 1;}
pref[i][j] = pref[i][j - 1] + wart + pref[i - 1][j] - pref[i - 1][j - 1];
}
}
FOR(i,1,n + 1){
int suma = 0;
for(int j = i; j >= 1;--j){
suma+= oblicz(j,j,i + 1,n);
f[i][j] = suma;
suma+= oblicz(j,i,j - 1,j - 1);
}
}
FOR(i,0,n + 1){
dp[i] = 1e9;
}
dp[0] = 0;
FOR(i,0,n){
FOR(j,i + 1,n + 1){
dp[j] = min(dp[j],dp[i] + f[j][i + 1]);
}
}
cout<<dp[n];
}