{
TASK:round
LANG:Pascal
}
program Round;
type izbr=0..400;
     mas=array[1..400] of 0..1;
     half=array[1..200] of izbr;
var t:mas;
    a,b:half;
    i,j,k,p,n,s,min,min1,min2,max:izbr;
    q:longint;

    procedure way(i,j:izbr);
    var f1,f2,f,sec,seci,secj:longint;
        sect:mas;
    begin
    min:=0;
    max:=0;
    min1:=0;
    min2:=0;
    if s=2*n then write('')
             else begin
                  for k:= 1 to a[i] do min1:=min1+t[k];
                  for k:= 2*n downto a[i] do min2:=min2+t[k];
                  if min2<=min1 then min:=min2
                                else min:=min1;
                  min1:=0;
                  min2:=0;
                  if (b[j]>=1) and (b[j]<=n) then begin
                                                  for k:= n+1 to 2*n do min1:=min1+t[k];
                                                  for k:= 1 to b[j] do min1:=min1+t[k];
                                                  for k:= n downto b[j] do min2:=min2+t[k];
                                                  if min2<=min1 then max:=min2
                                                  else max:=min1;
                                                  end
                                             else begin
                                                  for k:= n downto 1 do min1:=min1+t[k];
                                                  for k:= 2*n downto b[j] do min1:=min1+t[k];
                                                  for k:= n+1 to b[j] do min2:=min2+t[k];
                                                  if min2<=min1 then max:=min2
                                                  else max:=min1;
                                                  end;
                  IF (min=max) and (i<n) and (j<n) then begin
                  f:=q;
                  sec:=s;
                  seci:=i;
                  secj:=j;
                  sect:=t;

                  t[a[i]]:=1;
                  q:=q+min;
                  s:=s+1;
                  way(i+1,j);
                  f1:=q;

                  q:=f;
                  s:=sec;
                  i:=seci;
                  j:=secj;
                  t:=sect;

                  t[b[j]]:=1;
                  q:=q+max;
                  s:=s+1;
                  way(i,j+1);
                  f2:=q;

                  q:=f;
                  s:=sec;
                  i:=seci;
                  j:=secj;
                  t:=sect;
                  if f1<f2 then begin
                                t[a[i]]:=1;
                                q:=q+min;
                                s:=s+1;
                                way(i+1,j);
                                end
                            else begin
                                 t[b[j]]:=1;
                                 q:=q+max;
                                 s:=s+1;
                                 way(i,j+1);
                                 end;

                  end
                  else
                  if ((min<=max) and (i<=n)) or (j>n) then begin
                                   t[a[i]]:=1;
                                   q:=q+min;
                                   s:=s+1;
                                   way(i+1,j);
                                   end
                              else begin
                                   t[b[j]]:=1;
                                   q:=q+max;
                                   s:=s+1;
                                   way(i,j+1);
                                   end

                  end;
        END;

BEGIN
readln(n);
for i:= 1 to n-1 do read(a[i]);
readln(a[n]);
for i:= 1 to n-1 do read(b[i]);
readln(b[n]);

q:=-1;
s:=0;
way(1,1);
write(q);
end.
