#include <stdio.h>
#include <string.h>
int main()
{
int a[1500],b[1500],c[1500],i,j,n,max;
scanf("%d",&n);
for (i=0;i<n;++i)
scanf ("%d",&a[i]);
memset(b,0,sizeof(b));
memset(c,0,sizeof(c));
for (i=0;i<n;++i)//从左边开始寻找最长上升子序列
{
b[i]=1;
for (j=0;j<i;++j)
if (a[j]<a[i]&&b[j]+1>b[i])
b[i]=b[j]+1;
}
for (i=n-1;i>=0;--i)//从右边开始寻找最大下降子序列,不同下面的注释处理,因为以a[i]为中心
{
c[i]=1;
for (j=i+1;j<n;++j)
if (a[j]<a[i]&&c[j]+1>c[i])
c[i]=c[j]+1;
}
/* for (i=0;i<n;++i)
{
c[i]=1;
for (j=0;j<i;++j)
if (a[j]>a[i]&&c[j]+1>c[i])
c[i]=c[j]+1;
}*/
max=-1;
for (i=0;i<n;++i)
if (c[i]+b[i]>max)
max=c[i]+b[i];
printf ("%d\n",n-max+1);//由于a[i]减了两次
return 0;
}