'''解析:
n位同学顺序不可改变,要抽出最小人数,使剩余人的身高符合 ^ / \ 三种走势之一(严格升序/降序)。
将每位同学i作为最高点,依次找出抽出人数,其中的最小值即为结果。
需要抽出的人数f(n) 计算方法:
    同学i左面 符合严格升序的最多人数 l(i)
    同学i右面 符合严格降序的最多人数 r(i)
    同学i自己
队伍长度=l(i)+r(i)+1
需抽出的人数f(n)=n-(l(i)+r(i)+1)
'''

n=int(input())
h=list(map(int,input().split()))
#print(h)
l=[0]*n   # 0*n列表,用于记录i左面有几个人
for i in range(n):
    for j in range(i):   # 不包括i
        if h[i]>h[j] and l[j]+1>l[i]:
            l[i] += 1
#print(l)

r=[0]*n   # 0*n列表,用于记录i右面有几个人
for i in range(n-1,-1,-1):  # 从右往左
    for j in range(n-1,i,-1):
        if h[i]>h[j] and r[j]+1>r[i]: 
            r[i] += 1
#print(r)

chorus=[l[i]+r[i]+1 for i in range(n)]
#print(chorus)
out=[n-chorus[i] for i in range(n)]
print(min(out))
'''

l=list(range(8-1,-1,-1))
print(l)
'''