#include <bits/stdc++.h>
using namespace std;
const int inf = 1005;
int n,dp[1<<16][16],baby[16],me[16];
int solve(int mask, int k){
if(dp[mask][k]!=-1)return dp[mask][k];
if(k==0)return 0;
int ans = inf;
for(int i=0; i<k; i++){
if(mask & (1<<i)){
ans = min(ans, abs(i-k) + abs(me[i]-baby[k]) + solve(mask&(~(1<<i)), k-1));//remove this bit ie one less baby row and than number of way for k-1 rows...
}
}
return dp[mask][k] = ans;
}
int main(){
while(scanf("%d",&n)){
if(n==0)break;
memset(dp, -1, sizeof dp);
for(int i=0; i<n; i++)scanf("%d",&baby[i]);
for(int i=0; i<n; i++)scanf("%d",&me[i]);
cout<<solve((1<<n) -1, n)<<endl;
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgaW5mID0gMTAwNTsKaW50IG4sZHBbMTw8MTZdWzE2XSxiYWJ5WzE2XSxtZVsxNl07CmludCBzb2x2ZShpbnQgbWFzaywgaW50IGspewoJaWYoZHBbbWFza11ba10hPS0xKXJldHVybiBkcFttYXNrXVtrXTsKCWlmKGs9PTApcmV0dXJuIDA7CglpbnQgYW5zID0gaW5mOwoJZm9yKGludCBpPTA7IGk8azsgaSsrKXsKCQlpZihtYXNrICYgKDE8PGkpKXsKCQkJYW5zID0gbWluKGFucywgYWJzKGktaykgKyBhYnMobWVbaV0tYmFieVtrXSkgKyBzb2x2ZShtYXNrJih+KDE8PGkpKSwgay0xKSk7Ly9yZW1vdmUgdGhpcyBiaXQgaWUgb25lIGxlc3MgYmFieSByb3cgYW5kIHRoYW4gbnVtYmVyIG9mIHdheSBmb3Igay0xIHJvd3MuLi4KCQkJfQoJCX0KCXJldHVybiBkcFttYXNrXVtrXSA9IGFuczsKCX0KCmludCBtYWluKCl7Cgl3aGlsZShzY2FuZigiJWQiLCZuKSl7CgkJaWYobj09MClicmVhazsKCQltZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwoJCWZvcihpbnQgaT0wOyBpPG47IGkrKylzY2FuZigiJWQiLCZiYWJ5W2ldKTsKCQlmb3IoaW50IGk9MDsgaTxuOyBpKyspc2NhbmYoIiVkIiwmbWVbaV0pOwoJCWNvdXQ8PHNvbHZlKCgxPDxuKSAtMSwgbik8PGVuZGw7CgkJfQoJcmV0dXJuIDA7Cgl9Cg==