{
TASK: psort
LANG: PASCAL
}
{$R-}
Const
maxN = 65536;
var
ITree : array[1..maxN] of longint;
a : array[1..maxN] of longint;
i, j, k, l, m, n, br, en : longint;

Procedure Input(x, k : longint);
var
r, l, m : longint;
begin
l:=0;
r:=en;
inc(ITree[en]);
m:=-1;
while m<>x do
  begin
    m:=(l+r) div 2;
    if m>=x then
      begin
        inc(ITree[m], k);
        r:=m;
      end
    else
      l:=m;
  end;
end;

Function Get(vr : longint) : longint;
var
r, l, m, x : longint;
begin
l:=0;
r:=en;
m:=-1;
x:=0;
while m<>vr do
  begin
    m:=(l+r) div 2;
    if m<=vr then
      begin
        inc(x, ITree[m]);
        l:=m;
      end
    else
      r:=m;
  end;
Get:=x;
End;



Begin

readln(n);
for i:=1 to n do
  read(a[i]);
en:=1;
while n>=en do
  en:=2*en;

for i:=1 to n do
  Input(i, 1);

for i:=1 to n do
  begin
    k:=Get(a[i]);
    if k<>i then
      begin
        inc(br);
        Input(a[i], -1);
        Input(1, 1);
      end;
  end;
writeln(br);
End.