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

#define int long long

int memo[20][(1 << 18)];
int n;
int a[20];
int b[20];

int get(int i, int j){
    if(abs(j-i)%2 == 0){
        return a[j];
    }else{
        return b[j];
    }
}

int dp(int i, int bit, int last, int num){
    if(i == n){
        return 0;
    }

    if(memo[last][bit] != -1) return memo[last][bit];

    int ans = INT_MAX;
    int cnt = 0;
    for(int j = 0;j < n;j++){
        if((bit & (1 << j)) == 0){
            if(num <= get(i, j)){
                ans = min(ans, dp(i+1, bit | (1 << j), j, get(i, j)) + j-cnt);
            }
        }else{
            cnt++;
        }
    }

    return memo[last][bit] = ans;
}

signed main(){
    cin >> n;

    for(int i = 0;i < n;i++) cin >> a[i];
    for(int i = 0;i < n;i++) cin >> b[i];

    memset(memo, -1, sizeof(memo));

    cout << (dp(0, 0, n, 0) == INT_MAX ? -1 : dp(0, 0, n, 0)) << endl;
    return 0;
}
