#include <bits/stdc++.h>

using namespace std;

int bsPI(long long l, long long r, pair<long long, long long> niz[], long long k) {
    long long m;
    while(l <= r) {
        m = (l + r) / 2;
        // cout << "BP: " << l << " " << r << endl;
        if(k == niz[m].first) return m;
        if(k > niz[m].first) l = m + 1;
        else r = m - 1;
    }
    return -1;
}

int main() {
    ios_base::sync_with_stdio(false);
    cin.tie(0); cout.tie(0);
    long long sol = 0;
    long long n, x[100001], z[100001];
    cin >> n;
    for(int i = 0; i < n; i++) cin >> x[i];
    sort(x, x + n);
    pair<long long, long long> y[100001];
    for(int i = 0; i < n; i++) {
        cin >> y[i].first;
        y[i].second = i + 1;
    }
    sort(y, y + n, [](pair<long long, long long> a, pair<long long, long long> b) {
         return a.first < b.first;
         });
    for(int i = 0; i < n; i++) cin >> z[i];
    sort(z, z + n);
    long long prosli = -1;
    for(int i = 0; i < n; i++) {
        if(prosli == x[i]) continue;
        prosli = x[i];
        pair<long long*, long long*> emisijaER = equal_range(x, x + n, x[i]);
        long long emisija = emisijaER.second - emisijaER.first;
        long long ind = bsPI(0, n - 1, y, x[i]);
        if(ind == -1) continue;
        else {
            long long znj = ind;
            long long koji = y[znj].second;
            pair<long long*, long long*> scenarijaER = equal_range(z, z + n, koji);
            long long scenarija = scenarijaER.second - scenarijaER.first;
            sol += scenarija * emisija;
            znj++;
            while(znj < n && y[znj].first == y[ind].first) {
                koji = y[znj].second;
                scenarijaER = equal_range(z, z + n, koji);
                scenarija = scenarijaER.second - scenarijaER.first;
                sol += scenarija * emisija;
                znj++;
            }
            znj = ind - 1;
            while(znj >= 0 && y[znj].first == y[ind].first) {
                koji = y[znj].second;
                scenarijaER = equal_range(z, z + n, koji);
                scenarija = scenarijaER.second - scenarijaER.first;
                sol += scenarija * emisija;
                znj--;
            }
        }
    }
    cout << sol << endl;
}