n = int(eval(input()))

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

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

import itertools

plist = list(itertools.permutations([i+1 for i in range(n)]))

count = 1

resultp = 0

resultq = 0

for pp in plist:

    if(list(pp) == p):

        resultp = count

    if (list(pp) == q):

        resultq = count

    count += 1

print((abs(resultp - resultq)))
# 問題文： 大きさ N の順列 ((1, 2, ..., N) を並び替えてできる数列) P, Q があります。大きさ N の順列は N! 通り考えられます。

#         このうち、P が辞書順で a 番目に小さく、Q が辞書順で b 番目に小さいとして、|a−b| を求めてください。

# 注記： 2 つの数列 X, Y について、ある整数 k が存在して Xi=Yi (1≤i<k) かつ Xk<Yk が成り立つとき、X は Y より辞書順で小さいと定義されます。

# 制約: 2≤N≤8　P,Qは大きさNの順列である。入力は全て整数である。



import math



# 数列が何番目かを返却するメソッド

def junban(N, str):

    int_list = str.split() # 入力文字を配列化

    int_list = [int(i) for i in int_list]

    yet_list = str.split() # まだ出てきていない数字のリスト

    yet_list = [int(i) for i in yet_list]



    num = 1 # 何番目か保持する

    keta = 0 # 上から何桁目か保持する



    while keta < N:

        # 該当桁の数字を確保する

        now_int = int_list[keta]



        # 未出数値のリストを更新する

        yet_list.remove(now_int)



        # 順番をカウント

        # 該当桁以下の階乗 * 未出数値の内、現在より数値の小さいものの個数

        num += math.factorial(len(yet_list)) * len([i for i in yet_list if i < now_int])

        keta += 1



#    print('{}番目'.format(num))

    return num



# 大きさNを受け取る

N = int(eval(input()))



# 数列Pを受け取る

P = eval(input())



# 数列Qを受け取る

Q = eval(input())



# それぞれが何番目か求める

p_int = junban(N, P)

q_int = junban(N, Q)



print((abs(p_int - q_int)))
n = int(eval(input()))
p = list(map(int, input().split()))
q = list(map(int, input().split()))
import itertools

plist = list(itertools.permutations([i + 1 for i in range(n)]))
count = 1
resultp = 0
resultq = 0
for pp in plist:
    if list(pp) == p:
        resultp = count
    if list(pp) == q:
        resultq = count
    count += 1
print((abs(resultp - resultq)))

# 問題文： 大きさ N の順列 ((1, 2, ..., N) を並び替えてできる数列) P, Q があります。大きさ N の順列は N! 通り考えられます。
#         このうち、P が辞書順で a 番目に小さく、Q が辞書順で b 番目に小さいとして、|a−b| を求めてください。
# 注記： 2 つの数列 X, Y について、ある整数 k が存在して Xi=Yi (1≤i<k) かつ Xk<Yk が成り立つとき、X は Y より辞書順で小さいと定義されます。
# 制約: 2≤N≤8　P,Qは大きさNの順列である。入力は全て整数である。
import math

# 数列が何番目かを返却するメソッド
def junban(N, str):
    int_list = str.split()  # 入力文字を配列化
    int_list = [int(i) for i in int_list]
    yet_list = str.split()  # まだ出てきていない数字のリスト
    yet_list = [int(i) for i in yet_list]
    num = 1  # 何番目か保持する
    keta = 0  # 上から何桁目か保持する
    while keta < N:
        # 該当桁の数字を確保する
        now_int = int_list[keta]
        # 未出数値のリストを更新する
        yet_list.remove(now_int)
        # 順番をカウント
        # 該当桁以下の階乗 * 未出数値の内、現在より数値の小さいものの個数
        num += math.factorial(len(yet_list)) * len([i for i in yet_list if i < now_int])
        keta += 1
    #    print('{}番目'.format(num))
    return num


# 大きさNを受け取る
N = int(eval(input()))
# 数列Pを受け取る
P = eval(input())
# 数列Qを受け取る
Q = eval(input())
# それぞれが何番目か求める
p_int = junban(N, P)
q_int = junban(N, Q)
print((abs(p_int - q_int)))

-n = int(eval(input())) -p = list(map(int, input().split())) -q = list(map(int, input().split())) -import itertools +# 問題文： 大きさ N の順列 ((1, 2, ..., N) を並び替えてできる数列) P, Q があります。大きさ N の順列は N! 通り考えられます。 +#         このうち、P が辞書順で a 番目に小さく、Q が辞書順で b 番目に小さいとして、|a−b| を求めてください。 +# 注記： 2 つの数列 X, Y について、ある整数 k が存在して Xi=Yi (1≤i<k) かつ Xk<Yk が成り立つとき、X は Y より辞書順で小さいと定義されます。 +# 制約: 2≤N≤8　P,Qは大きさNの順列である。入力は全て整数である。 +import math -plist = list(itertools.permutations([i + 1 for i in range(n)])) -count = 1 -resultp = 0 -resultq = 0 -for pp in plist: -    if list(pp) == p: -        resultp = count -    if list(pp) == q: -        resultq = count -    count += 1 -print((abs(resultp - resultq))) +# 数列が何番目かを返却するメソッド +def junban(N, str): +    int_list = str.split()  # 入力文字を配列化 +    int_list = [int(i) for i in int_list] +    yet_list = str.split()  # まだ出てきていない数字のリスト +    yet_list = [int(i) for i in yet_list] +    num = 1  # 何番目か保持する +    keta = 0  # 上から何桁目か保持する +    while keta < N: +        # 該当桁の数字を確保する +        now_int = int_list[keta] +        # 未出数値のリストを更新する +        yet_list.remove(now_int) +        # 順番をカウント +        # 該当桁以下の階乗 * 未出数値の内、現在より数値の小さいものの個数 +        num += math.factorial(len(yet_list)) * len([i for i in yet_list if i < now_int]) +        keta += 1 +    #    print('{}番目'.format(num)) +    return num + + +# 大きさNを受け取る +N = int(eval(input())) +# 数列Pを受け取る +P = eval(input()) +# 数列Qを受け取る +Q = eval(input()) +# それぞれが何番目か求める +p_int = junban(N, P) +q_int = junban(N, Q) +print((abs(p_int - q_int)))