using System;
using System.Collections.Generic;
using System.Linq;
using static Input;
using static Prog;
using NX = System.Int64;

public class Solver
{
    public void Solve()
    {
        int N = NextInt();
        NextPermutation NP = new NextPermutation();
        var np = NP.Run(N);
        int[] P = LineInt().Select(v => v - 1).ToArray();
        int[] Q = LineInt().Select(v => v - 1).ToArray();
        int count = 0, p = 0, q = 0;
        foreach (var e in np)
        {
            bool p_ok = true;
            bool q_ok = true;
            for (int i = 0; i < N; i++)
            {
                if (e[i] != P[i]) p_ok = false;
                if (e[i] != Q[i]) q_ok = false;
            }
            if (p_ok) p = count;
            if (q_ok) q = count;
            count++;
        }
        Console.WriteLine(Math.Abs(p-q));
    }
}

public class NextPermutation
{
    public List<List<int>> ret;
    private Queue<List<int>> Q;

    public NextPermutation()
    {
        ret = new List<List<int>>();
        Q = new Queue<List<int>>();
    }

    public List<List<int>> Run(int N)
    {
        for (int i = 0; i < N; i++)
        {
            List<int> box = new List<int>();
            box.Add(i);
            Q.Enqueue(box);
        }
        while (Q.Count() != 0)
        {
            List<int> box = Q.Dequeue();
            if (box.Count() == N) { ret.Add(box); }
            else
            {
                for (int i = 0; i < N; i++)
                {
                    if (!box.Contains(i))
                    {
                        List<int> b = new List<int>(box);
                        b.Add(i);
                        Q.Enqueue(b);
                    }
                }
            }
        }
        return ret;
    }
}

public class Prog
{
    public const long MOD = 1000000007;
    public const int INF = 1000000007;
    public struct Pair { public int x, y; public Pair(int a, int b) { x = a; y = b; } }
    static void Main()
    {
        var sw = new System.IO.StreamWriter(Console.OpenStandardOutput()) { AutoFlush = false };
        Console.SetOut(sw);
        new Solver().Solve();
        Console.Out.Flush();
        return;
    }
}

public class Input
{
    private static Queue<string> q = new Queue<string>();
    private static void Confirm() { if (q.Count == 0) foreach (var s in Console.ReadLine().Split(' ')) q.Enqueue(s); }
    public static int NextInt() { Confirm(); return int.Parse(q.Dequeue()); }
    public static long NextLong() { Confirm(); return long.Parse(q.Dequeue()); }
    public static string NextString() { Confirm(); return q.Dequeue(); }
    public static double NextDouble() { Confirm(); return double.Parse(q.Dequeue()); }
    public static int[] LineInt() { return Console.ReadLine().Split(' ').Select(int.Parse).ToArray(); }
    public static long[] LineLong() { return Console.ReadLine().Split(' ').Select(long.Parse).ToArray(); }
    public static string[] LineString() { return Console.ReadLine().Split(' ').ToArray(); }
    public static double[] LineDouble() { return Console.ReadLine().Split(' ').Select(double.Parse).ToArray(); }
    public long Abs(long a, long b) => Math.Abs(a - b);
}


Measured memory_bytes: 31224