#include <bits/stdc++.h>
using namespace std;

long long Resi(int N, int *A, int *B)
{
    if(N<=20)
    {
        int a[25];
        int sta[25];
        int b[25];
        for(int i=0;i<N;i++) a[i]=A[i];
        for(int i=0;i<N;i++) b[i]=B[i];
        vector<pair<int,int> > v;
        for(int i=0;i<N;i++) v.push_back({a[i],(i+1)});
        for(int i=0;i<N;i++) v.push_back({b[i],-(i+1)});
        sort(v.begin(),v.end());
        long long ans=1e18;
        for(int mask=0;mask<(1<<N);mask++)
        {
            vector<int> taj;
            //pom.clear();
            for(int i=0;i<N;i++)
            {
                if(mask&(1<<i)) sta[i]=1; //napred
                else sta[i]=0;
            }
            //vector<int> pom(N);
            long long res=0;
            for(pair<int,int> i:v)
            {
                if(i.second<0)
                {
                    i.second++;
                    i.second*=-1;
                    vector<int> pom;
                    for(int u=0;u<taj.size();u++)
                    {
                        if(taj[u]==i.second)
                        {
                            res+=u;
                        }
                        else
                        {
                            pom.push_back(taj[u]);
                        }
                    }
                    taj=pom;
                }
                else
                {
                    i.second--;
                    vector<int>pom(taj.size()+1); 
                    if(sta[i.second]==1) //napred
                    {
                        pom[0]=i.second;
                        for(int i=0;i<taj.size();i++) pom[i+1]=taj[i];
                        taj=pom;
                    }
                    else //kraj
                    {
                        pom=taj;
                        pom.push_back(i.second);
                        taj=pom;
                    }
                }
            }
            ans=min(ans,res);
        }
        return ans;
    }
    return -1;
}