local read = setmetatable({}, {__index = function(t, k) local a = {} for i=1,#k do table.insert(a, '*'..string.sub(k, i, i)) end local r = io.read local u = table.unpack or unpack return function() return r(u(a)) end end})
read.N = function(N) local t={} for i=1,N do t[i]=read.n() end return t end
string.totable = function(s) local t={} local u=string.sub for i=1,#s do t[i] = u(s, i, i) end return t end
string.split = function(s) local t={} for w in string.gmatch(s, "[^%s]+") do table.insert(t, w) end return (table.unpack or unpack)(t) end
----
-- https://www.youtube.com/watch?v=nYFd7VHKyWQ
-- https://github.com/mission-peace/interview/blob/master/python/recursion/stringpermutation.py

-- For simplicity, this algorithm does not allow duplicate elements.

local function permute(seq)
    local inuse = {}
    local result = {}
    local function rec(level)
        if level > #seq then
            --print(table.concat(result, ""))
            coroutine.yield(result)
            return
        end
        for i=1,#seq do
            if not inuse[i] then
                result[level] = seq[i]
                inuse[i] = true
                rec(level + 1)
                inuse[i] = false
            end
        end
    end
    local function start()
        rec(1)
    end
    return coroutine.wrap(start)
end
----
-----
local N = read.n()
local A = {}
for i=1,N do
    A[i] = i
end
local function test()
    for k in permute(A) do
        print(table.concat(k,""))
    end
end
--test()
local P, Q = {}, {}
for i=1,N do
    P[i] = read.n()
end
for i=1,N do
    Q[i] = read.n()
end

local function sameseq(a, b)
    return table.concat(a, " ") == table.concat(b, " ")
end

local a, b
local i = 1
for k in permute(A) do
    if sameseq(k, P) then
        a = i
    end
    if sameseq(k, Q) then
        b = i
    end
    i = i + 1
end
print(math.abs(a-b))