#include<bits/stdc++.h>
using namespace std;

int dp[1 << 18][18] , N , A[18] , B[18];

int main(){
	cin >> N; for(int i = 0 ; i < N ; ++i) cin >> A[i];
	for(int i = 0 ; i < N ; ++i) cin >> B[i];
	for(int i = 0 ; i < N ; ++i) if(i & 1) swap(A[i] , B[i]);
	memset(dp , 0x3f , sizeof(dp));
	for(int i = 0 ; i < N ; ++i) dp[1 << i][i] = i;
	for(int i = 1 ; i + 1 < 1 << N ; ++i)
		for(int j = 0 ; j < N ; ++j)
			if(dp[i][j] <= 1e4){
				int cnt = __builtin_popcount(i) , num = 0;
				for(int k = 0 ; k < N ; ++k)
					if(!(i >> k & 1)){
						if((cnt & 1) && A[j] > B[k] || !(cnt & 1) && B[j] > A[k]) continue;
						dp[i | (1 << k)][k] = min(dp[i | (1 << k)][k] , dp[i][j] + k - num);
					}else ++num;
			}
	int mn = 1e9; for(int i = 0 ; i < N ; ++i) mn = min(mn , dp[(1 << N) - 1][i]);
	printf("%d\n" , mn > 1e4 ? -1 : mn);
}