1 #include<iostream>
2 #include<cstdio>
3 #include<cstring>
4 #include<cmath>
5 using namespace std;
6 const int MAXN=101;
7 int a[MAXN];
8 int b[MAXN];
9 int c[MAXN];
10 int f[MAXN];
11 int n;
12 void bxj(int l)
13 {
14 memset(f,0,sizeof(f));
15 for(int i=1;i<=l;i++)
16 {
17 for(int j=1;j<=i-1;j++)
18 {
19 if(a[i]>a[j])
20 {
21 f[i]=max(f[i],f[j]+1);
22 }
23 }
24 }
25 int ans=0;
26 for(int i=1;i<=l;i++)
27 {
28 if(ans<f[i]+1)
29 ans=f[i]+1;
30 }
31 b[l]=ans;
32 //b[l]=f[l];
33 }
34 void bss(int l)
35 {
36 memset(f,0,sizeof(f));
37 for(int i=l;i<=n;i++)
38 {
39 for(int j=l;j<=i;j++)
40 {
41 if(a[i]<a[j])
42 {
43 f[i]=max(f[i],f[j]+1);
44 }
45 }
46 }
47 int ans=0;
48 for(int i=l;i<=n;i++)
49 {
50 if(ans<f[i]+1)
51 ans=f[i]+1;
52 }
53 c[l]=ans;
54 }
55 int main()
56 {
57
58 scanf("%d",&n);
59 for(int i=1;i<=n;i++)
60 scanf("%d",&a[i]);
61 for(int i=1;i<=n;i++)
62 {
63 bxj(i);
64 bss(i);
65 }
66 int ans=0;
67 for(int i=1;i<=n;i++)
68 if(b[i]+c[i]>=ans)
69 ans=b[i]+c[i];
70 printf("%d",n-ans+1);
71 return 0;
72 }