{
TASK:psort
LANG:PASCAL
}

type
        MASiv=array[1..50000] of longword;



var
        a,group:masiv;
        i,j,n,m,br:LOngword;
        long,max:Longword;
        gr,cur:longword;


      function max1(a,b:longword):Longword;
       begin
        if a<=b then max1:=b
                else max1:=a
       end;


 begin
  readln(n);
   for i:=1 to n do read(a[i]);
    cur:=0;
     for i:=1 to n-1 do
      if a[i]>a[i+1] then inc(cur);


       gr:=0;
       j:=0;
       br:=0;

     {  writeln(cur)  }

        repeat
         inc(j);
         i:=j;
          while a[i]>=a[j] do inc(i);
           inc(br);
           group[br]:=i-j;
           j:=i;
        until j>=n;

        max:=group[1];
         for j:=2 to br do if max<group[br] then max:=group[br];
                         {cur-broy grupi}
     if max<=2 then  writeln(cur)
               else writeln(n-max)         {max-max dyljina na grupa}



      {  if n-max>cur then writeln(n-max)
                  else writeln(cur)          }
 end.






