/*
TASK:psort
LANG:C++
*/

#include <stdio.h>
//#include <conio.h>
#include <iostream>
#include <time.h>
using namespace std;

#define pr printf
#define MN  50010

int a[MN],ind[MN],n;

int main()
{
	//freopen("p6.in","r",stdin);
	scanf("%d",&n);
	for (int i=1;i<=n;++i) scanf("%d",a+i);
	
	for (int i=1;i<=n;++i) ind[a[i]]=i;
	int maxind,minind,i,j;
	long long cnt,ans=(long long)MN*MN;
	
	for (i=1;i<=n && clock()<280;++i) {
		cnt=0;
		maxind=minind=ind[i];
		for (j=i+1;j<=n;++j) {
			if (ind[j]>maxind) { maxind=ind[j]; }
			else ++cnt;
		}
		for (j=i-1;j>0;--j) {
			if (ind[j]<minind) { minind=ind[j]; }
			else ++cnt;
		}
		if (ans>cnt) ans=cnt;
		//pr("%d\n",cnt);
	}
	cout<<ans<<endl;

	//getch();
	return 0;
}
