#include<iostream>
#include<cstdio>
using namespace std;
const int N=60;
int up[N];
int dw[N];
int a[N];
int n;
int ans;
void dfs(int layor,int su,int sd)
{
if(layor==n+1)
{
ans=min(ans,su+sd);
return;
}
if(su+sd>=ans)
{
return;
}
int index=su+1;
for(int i=1;i<=su;i++)
{
if(up[i]<=a[layor])
{
index=i;
break;
}
}
int tmp=up[index];
up[index]=a[layor];
dfs(layor+1,su+(index==su+1),sd);
up[index]=tmp;
index=sd+1;
for(int i=1;i<=sd;i++)
{
if(dw[i]>=a[layor])
{
index=i;
break;
}
}
tmp=dw[index];
dw[index]=a[layor];
dfs(layor+1,su,sd+(index==sd+1));
dw[index]=tmp;
}
int main()
{
while(cin>>n,n)
{
ans=n;
for(int i=1;i<=n;i++)
{
scanf("%d",&a[i]);
}
dfs(1,0,0);
cout<<ans<<endl;
}
}