/*
TASK:round
LANG:C++
*/
#include<iostream.h>
long A[2000],w,j,pomA,q,p,pomB,min,B[2000],br1,br2,br3,br4,R[4000],i=0,n;
long Path_A(long k)
{
  for(w=1;w<=A[k];w++)
    br1+=R[w];
     for(w=2*n;w>=A[k];w--)
       br2+=R[w];
       if (br1>br2) br1=br2;
       return br1;
}
long Path_B(long k)
{
  if (B[k]<=n)
    {
     for(w=n;w>=B[k];w--)
       br3+=R[w];
	 for(w=1;w<=B[k];w++)
		br4+=R[w];   for(w=n+1;w<=2*n;w++)
				  br4+=R[w];
     } else
	 for(w=n+1;w<=B[k];w++)
	    br3+=R[w];
	     for(w=2*n;w>=B[k];w--)
		br4+=R[w];  for(w=1;w<=n;w++)
			       br4+=R[w];
      if (br3>br4) br3=br4;
       return br3;
}


int main ()
{
 cin>>n;
 for(i=1;i<=n;i++)
   cin>>A[i];
    for(i=1;i<=n;i++)
      cin>>B[i];
      i=j=1;
   while (!((i-1==n)&&(j-1==n)))
      {
       if (i-1==n) {
		   min+=Path_B(j);
		   R[B[j]]=1;j++;br1=br2=0;br3=br4=0;
		  }  else
	 if (j-1==n) {
		   min+=Path_A(i);
		   R[A[i]]=1;j++;br1=br2=0;br3=br4=0;
		  }       else
	  if (Path_A(i)==Path_B(j))
	    {
	      min+=br1;br1=br2=0;br3=br4=0;
		 if (R[B[j]-1]==1) {
				     R[B[j]]=1;j++;
				    }
		     else if (R[A[j]+1]==0)
				{R[A[i]]=1;i++;}  else
			{R[A[i]]=1;i++;}
	       br1=br2=0;br3=br4=0;
	    }
	    else

      if (Path_A(i)<Path_B(j))
	   { br1=br2=0;br3=br4=0;
	    min+=Path_A(i);R[A[i]]=1;i++;br1=br2=0;br3=br4=0;
	   }  else
	  {
	   min+=Path_B(j);R[B[j]]=1;j++;br1=br2=0;br3=br4=0;
	   }
      }

 cout<<min<<endl;
return 0;
}