import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
while(scanner.hasNext()){
int num = scanner.nextInt();
int[] arr = new int[num];
for(int i=0; i<num; i++){
arr = scanner.nextInt();
}
int[] a = getBestQueue(arr, true);
int[] b = getBestQueue(arr,false);
int len = 0;
//获取最长合唱形
for(int i=0; i<num; i++){
int n = a + b;
if(n > len){
len = n;
}
}
System.out.println(num-len+1);
}
}
//求递增子序列
public static int[] getBestQueue(int[] array, boolean acceding){
int length = array.length;
int a[] = new int[length];
if(acceding){
//从左到右的递增子序列
for(int i=0; i<length; i++){
a = 1;
for(int j=0; j<i; j++){
if(array > array[j]){
a = Math.max(a, a[j]+1);
}
}
}
}else{
//从右到左的递增子序列
for(int i=length-1; i >=0 ; i--){
a = 1;
for(int j=length-1; j>i; j--){
if(array > array[j]){
a = Math.max(a, a[j]+1);
}
}
}
}
return a;
}
}