#include<iostream>
#include<algorithm>
using namespace std;
const int INF=10000000;
int arr[105];
int b[105];
int low1[105];
int low2[105];
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;++i)
{
cin>>arr[i];
b[n-i+1]=arr[i];
}
int maxn=0;
for(int i=0;i<=n;++i)
{
int maxn1=0,maxn2=0;
fill(low1+1,low1+1+n,INF);
fill(low2+1,low2+1+n,INF);
for(int j=1;j<=i;++j)
{
int index=lower_bound(low1+1,low1+1+n,arr[j])-low1;
low1[index]=arr[j];
if(index>maxn1)
maxn1=index;
}
for(int k=1;k<=n-i;++k)
{
int index=lower_bound(low2+1,low2+1+n,b[k])-low2;
low2[index]=b[k];
if(index>maxn1)
maxn2=index;
}
if(low1[maxn1]==low2[maxn2])
maxn=max(maxn,maxn1+maxn2-1);
else
maxn=max(maxn,maxn1+maxn2);
}
cout<<n-maxn<<endl;
}