#include <bits/stdc++.h>
using namespace std;
#ifndef lisie_bimbi
#define endl '\n'
#pragma GCC optimize("O3")
#pragma GCC target("avx,avx2,bmi2,fma")
#endif
using ll = long long;
const ll inf = 1'000'000'000;
struct fenwick{
int n;
vector<int> a;
vector<int> d;
void upd(int ind, int dd){
ind++;
for(int i = ind; i <= n; i += (i & (-i))){
d[i] += dd;
}
}
int get(int l, int r){
r++;
int ans = 0;
for(int i = r; i > 0; i -= (i & (-i))){
ans += d[i];
}
for(int i = l; i > 0; i -= (i & (-i))){
ans -= d[i];
}
return ans;
}
fenwick(int n1){
n = n1;
a.resize(n + 1);
d.resize(n + 1);
}
};
vector<vector<int>> pref;
vector<vector<int>> pref2;
int get(int i, int l, int r){
return pref[i][r] - pref[i][l];
}
int get2(int i, int l, int r){
return pref2[i][r] - pref2[i][l];
}
void solve(){
int n;
cin >> n;
vector<int> a(n);
for(int i = 0; i < n; i++){
cin >> a[i];
a[i]--;
}
vector<vector<int>> leftless_more(n + 1, vector<int>(n));
for(int z = 0; z < n; z++){
fenwick f(n);
for(int i = 0; i < n; i++){
leftless_more[z][a[i]] = f.get(0, a[i]);
if(a[i] >= z){
f.upd(a[i], 1);
}
}
}
pref.resize(n + 1, vector<int>(n + 1));
for(int i = 0; i <= n; i++){
for(int j = 1; j <= n; j++){
pref[i][j] = pref[i][j - 1] + leftless_more[i][j - 1];
}
}
vector<vector<int>> more(n + 1, vector<int>(n));
for(int z = 0; z < n; z++){
int cnt = 0;
for(int i = 0; i < n; i++){
more[z][a[i]] = cnt;
if(a[i] >= z){
cnt++;
}
}
}
pref2.resize(n + 1, vector<int>(n + 1));
for(int i = 0; i <= n; i++){
for(int j = 1; j <= n; j++){
pref2[i][j] = pref2[i][j - 1] + more[i][j - 1];
}
}
// for(auto i : leftless_more){
// for(auto j : i){
// cout << j << ' ';
// }
// cout << endl;
// }
// cout << endl;
vector<int> dp(n + 1, inf);
dp[0] = 0;
for(int i = 1; i <= n; i++){
for(int j = 0; j < i; j++){
int cost = get(j, j, i) + get2(i, j, i);
dp[i] = min(dp[i], dp[j] + cost);
// cout << j << ' ' << i << ' ' << dp[i] << endl;
}
}
// for(auto i : dp){
// cout << i << ' ';
// }
// cout << endl;
cout << dp[n] << endl;
}
signed main(){
#ifdef lisie_bimbi
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#else
#endif
cin.tie(nullptr)->sync_with_stdio(false);
int t = 1;
//cin >> t;
while(t--){
solve();
}
}