#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
int n,a[20],b[20],dp[1<<18][51],cnt[1<<18],ans=0x3f3f3f3f;
int main()
{
	scanf("%d",&n);
	for(int i=0;i<n;++i)scanf("%d",&a[i]);
	for(int i=0;i<n;++i)scanf("%d",&b[i]);
	for(int i=1;i<1<<n;++i)cnt[i]=cnt[i>>1]+(i&1);
	memset(dp,0x3f,sizeof(dp));dp[0][1]=0;
	for(int i=0;i<(1<<n)-1;++i)
		for(int j=1;j<=50;++j)
			if(dp[i][j]!=0x3f3f3f3f)
				for(int k=0,w,c=cnt[i];k<n;++k)
				{
					w=(k&1)==(cnt[i]&1)?a[k]:b[k];
					if(i>>k&1)--c;
					if(!(i>>k&1)&&w>=j)dp[i|(1<<k)][w]=min(dp[i|(1<<k)][w],dp[i][j]+c);
				}
//	for(int i=0;i<1<<n;++i)
//		for(int j=1;j<=3;++j)
//			printf("%d %d %d\n",i,j,dp[i][j]);
	for(int i=1;i<=50;++i)ans=min(ans,dp[(1<<n)-1][i]);
	printf("%d",ans==0x3f3f3f3f?-1:ans);
	return 0;
}
