#include <bits/stdc++.h>
#define ubrzaj ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0)
#define NMAX 100000

using namespace std;

int ponavljanja[NMAX],ponavljanjaT[NMAX];
int bio[NMAX];
int main()
{
    ubrzaj;

    int n;cin >> n;
    vector<int> x(n),y(n),z(n);
    vector<int> t(n);
    for(int i=0; i<n; i++){cin >> x[i];ponavljanja[x[i]]++;}
    for(int i=0; i<n; i++)cin >> y[i];
    for(int i=0; i<n; i++)cin >> z[i];
    for(int i=0; i<n; i++){t[i]=y[z[i]-1];ponavljanjaT[t[i]]++;}
    int res=0;
    //sort(x.begin(),x.end());
    /*if(n<=1000){
    for(int i=0; i<n; i++)
        for(int j=0; j<n; j++){
        //if(binary_search(x.begin(),x.end(),y[z[j]])==true)
            if(x[i]==y[z[j]-1])res++;
        //else continue;
        //if(binary_search(x.begin(),x.end(),y[z[i]])==true)res++;
        }
    }*/
    /*for(auto v:t)cout << v << " ";
    cout << endl;*/
    //else{
        for(int i=0; i<n; i++)
        if(bio[x[i]]==false){
            res+=(ponavljanja[x[i]]*ponavljanjaT[x[i]]);
            bio[x[i]]=true;
            //cout << x[i] << ponavljanja[x[i]] << ponavljanjaT[t[i]] << res << " ";
        }
        //cout << endl;
            //if(binary_search(t.begin(),t.end(),x[i])==true)res++;
            //res+=count(t.begin(),t.end(),x[i]);
    //}
    cout << res << endl;
    return 0;
}