n=int(eval(input()))

a=list(map(int,input().split()))

b=list(map(int,input().split()))

allpat=[]

todo=[[]]

while todo:

  pat=todo.pop()

  if len(pat)==n//2:

    allpat.append(pat)

    continue

  s=0

  if pat:s=max(pat)+1

  for i in range(s,n):

    todo.append(pat+[i])



def func(pat):

  # カードを最終的に偶奇どちらのidxになるかで分類

  # pat内のidxが最後に奇数のidxになるとする

  ablev=[]

  ablod=[]

  for i in range(n):

    if i in pat:

      if i%2==0:

        ablod.append([i,b[i]])

      else:

        ablod.append([i,a[i]])

    else:

      if i%2==0:

        ablev.append([i,a[i]])

      else:

        ablev.append([i,b[i]])

  ablev.sort(key=lambda x:x[1]*20+x[0])

  ablod.sort(key=lambda x:x[1]*20+x[0])

  now=0

  ary=[]

  for i in range(n//2):

    if ablev[i][1]>=now:

      now=ablev[i][1]

      ary.append(ablev[i][0])

    else:

      return -1

    if ablod[i][1]>=now:

      now=ablod[i][1]

      ary.append(ablod[i][0])

    else:

      return -1

  if n%2==1:

    if ablev[n//2][1]>=now:

      now=ablev[i][1]

      ary.append(ablev[n//2][0])

    else:

      return -1

  ret=0

  for i in range(n):

    for j in range(n-1,i,-1):

      if ary[j-1]>ary[j]:

        ary[j],ary[j-1]=ary[j-1],ary[j]

        ret+=1

  return ret



ans=float('inf')

for pat in allpat:

  t=func(pat)

  if t>=0:

    ans=min(ans,t)

print((ans if ans!=float('inf') else -1))

n=int(eval(input()))

a=list(map(int,input().split()))

b=list(map(int,input().split()))

allpat=[]

todo=[[]]

while todo:

  pat=todo.pop()

  if len(pat)==n//2:

    allpat.append(pat)

    continue

  s=0

  if pat:s=max(pat)+1

  for i in range(s,n):

    todo.append(pat+[i])



def func(pat):

  # カードを最終的に偶奇どちらのidxになるかで分類

  # pat内のidxが最後に奇数のidxになるとする

  ablev=[]

  ablod=[]

  for i in range(n):

    if i in pat:

      if i%2==0:

        ablod.append([i,b[i]])

      else:

        ablod.append([i,a[i]])

    else:

      if i%2==0:

        ablev.append([i,a[i]])

      else:

        ablev.append([i,b[i]])

  ablev.sort(key=lambda x:x[1]*20+x[0])

  ablod.sort(key=lambda x:x[1]*20+x[0])

  now=0

  ary=[]

  for i in range(n//2):

    if ablev[i][1]>=now:

      now=ablev[i][1]

      ary.append(ablev[i][0])

    else:

      return -1

    if ablod[i][1]>=now:

      now=ablod[i][1]

      ary.append(ablod[i][0])

    else:

      return -1

  if n%2==1:

    if ablev[n//2][1]>=now:

      now=ablev[i][1]

      ary.append(ablev[n//2][0])

    else:

      return -1

  ret=0

  for i in range(n-1):

    for j in range(i+1,n):

      if ary[i]>ary[j]:ret+=1

  return ret



ans=float('inf')

for pat in allpat:

  t=func(pat)

  if t>=0:

    ans=min(ans,t)

print((ans if ans!=float('inf') else -1))

n = int(eval(input()))
a = list(map(int, input().split()))
b = list(map(int, input().split()))
allpat = []
todo = [[]]
while todo:
    pat = todo.pop()
    if len(pat) == n // 2:
        allpat.append(pat)
        continue
    s = 0
    if pat:
        s = max(pat) + 1
    for i in range(s, n):
        todo.append(pat + [i])


def func(pat):
    # カードを最終的に偶奇どちらのidxになるかで分類
    # pat内のidxが最後に奇数のidxになるとする
    ablev = []
    ablod = []
    for i in range(n):
        if i in pat:
            if i % 2 == 0:
                ablod.append([i, b[i]])
            else:
                ablod.append([i, a[i]])
        else:
            if i % 2 == 0:
                ablev.append([i, a[i]])
            else:
                ablev.append([i, b[i]])
    ablev.sort(key=lambda x: x[1] * 20 + x[0])
    ablod.sort(key=lambda x: x[1] * 20 + x[0])
    now = 0
    ary = []
    for i in range(n // 2):
        if ablev[i][1] >= now:
            now = ablev[i][1]
            ary.append(ablev[i][0])
        else:
            return -1
        if ablod[i][1] >= now:
            now = ablod[i][1]
            ary.append(ablod[i][0])
        else:
            return -1
    if n % 2 == 1:
        if ablev[n // 2][1] >= now:
            now = ablev[i][1]
            ary.append(ablev[n // 2][0])
        else:
            return -1
    ret = 0
    for i in range(n):
        for j in range(n - 1, i, -1):
            if ary[j - 1] > ary[j]:
                ary[j], ary[j - 1] = ary[j - 1], ary[j]
                ret += 1
    return ret


ans = float("inf")
for pat in allpat:
    t = func(pat)
    if t >= 0:
        ans = min(ans, t)
print((ans if ans != float("inf") else -1))

n = int(eval(input()))
a = list(map(int, input().split()))
b = list(map(int, input().split()))
allpat = []
todo = [[]]
while todo:
    pat = todo.pop()
    if len(pat) == n // 2:
        allpat.append(pat)
        continue
    s = 0
    if pat:
        s = max(pat) + 1
    for i in range(s, n):
        todo.append(pat + [i])


def func(pat):
    # カードを最終的に偶奇どちらのidxになるかで分類
    # pat内のidxが最後に奇数のidxになるとする
    ablev = []
    ablod = []
    for i in range(n):
        if i in pat:
            if i % 2 == 0:
                ablod.append([i, b[i]])
            else:
                ablod.append([i, a[i]])
        else:
            if i % 2 == 0:
                ablev.append([i, a[i]])
            else:
                ablev.append([i, b[i]])
    ablev.sort(key=lambda x: x[1] * 20 + x[0])
    ablod.sort(key=lambda x: x[1] * 20 + x[0])
    now = 0
    ary = []
    for i in range(n // 2):
        if ablev[i][1] >= now:
            now = ablev[i][1]
            ary.append(ablev[i][0])
        else:
            return -1
        if ablod[i][1] >= now:
            now = ablod[i][1]
            ary.append(ablod[i][0])
        else:
            return -1
    if n % 2 == 1:
        if ablev[n // 2][1] >= now:
            now = ablev[i][1]
            ary.append(ablev[n // 2][0])
        else:
            return -1
    ret = 0
    for i in range(n - 1):
        for j in range(i + 1, n):
            if ary[i] > ary[j]:
                ret += 1
    return ret


ans = float("inf")
for pat in allpat:
    t = func(pat)
    if t >= 0:
        ans = min(ans, t)
print((ans if ans != float("inf") else -1))

-    for i in range(n): -        for j in range(n - 1, i, -1): -            if ary[j - 1] > ary[j]: -                ary[j], ary[j - 1] = ary[j - 1], ary[j] +    for i in range(n - 1): +        for j in range(i + 1, n): +            if ary[i] > ary[j]: