#include<bits/stdc++.h>

using namespace std;
string a, b;
vector<string> splita, splitb;
long long power(int n, int st){
    long long ans = n;
    for(int i = 1 ; i < st; i++){
        ans *= n;
    }
    return ans;
}
string numtobinary(int n){
    string ans;
    while(n > 0){
        int z = n % 2;
        n /= 2;
        ans.push_back(z+'0');
    }
    return ans;
}
string str(int start, int endd, int AorB){
    string ans = "";
    if(AorB == 0){
        for(int i = endd; i >= start; i--){
            ans.push_back(a[i]);
        }
    }else{
        for(int i = endd; i >= start; i--){
            ans.push_back(b[i]);
        }
    }
    reverse(ans.begin(), ans.end());
    return ans;
}

int main(){
    int n;
    cin >> n;
    for(int i = 0; i < n ; i++){
        int z;
        cin >> z;
        a.push_back(z+'0');
    }
    for(int i = 0; i < n; i++){
        int z;
        cin >> z;
        b.push_back(z+'0');
    }
    long long k = power(2, n-1);
    for(int i = 1; i < k; i++){
        for(int j = 1; j < k; j++){
            string cuta = numtobinary(i);
            string cutb = numtobinary(j);
            if(cutb.size() != cuta.size()){
                continue;
            }
            int start = 0, endd = 0;
            for(auto z:cuta){
                if(z == '1'){
                    splita.push_back(str(start,endd,0));
                    start = endd+1;
                }
                endd++;
            }
            splita.push_back(str(start,n-1,0));
            start = 0;
            endd = 0;
            for(auto z:cutb){
                if(z == '1'){
                    splitb.push_back(str(start,endd,1));
                    start = endd+1;
                }
                endd++;
            }
            splitb.push_back(str(start,n-1,1));

            sort(splitb.begin(), splitb.end());
            sort(splita.begin(), splita.end());
            int t = splita.size();
            bool bul = true;
            for(int z = 0; z < t; z ++){
                if(splita[z] != splitb[z]){
                    bul = false;
                    break;
                }
            }
            if(bul){
                cout << t;
                return 0;
            }
            /*cout << cuta << " " << cutb << endl;
            for(auto z : splita){
                cout << z << " ";
            }
            cout << endl;
            for(auto z : splitb){
                cout << z << " ";
            }
            cout << endl;*/
            splita.clear();
            splitb.clear();
        }
    }
    return 0;
}
