#include <bits/stdc++.h>

int main() {
  int n; std::cin >> n;
  std::vector<int> a(n), b(n), c(n);
  for (int i = 0; i < n; ++i) std::cin >> a[i];
  for (int i = 0; i < n; ++i) std::cin >> b[i];
  for (int i = 0; i < n; ++i) std::cin >> c[i];
  for (int i = 0; i < n; ++i) --a[i], --b[i], --c[i];

  // Bを基準に考える 
  // a_count[i] := iがaに何個あるか eg. a_count[2] == 2の場合
  std::vector<int> a_count(n, 0); 
  for (int i = 0; i < n; ++i) ++a_count[a[i]];

  std::vector<int> b_count(n, 0); // b_count[i] := b[i]==a[i]となる個数;
  for (int i = 0; i < n; ++i) b_count[i] = a_count[b[i]]; // b_count[i] := b[i]=a[j]となるjが何個あるか

  std::vector<int> c_count(n+1, 0); // c_count[i] := iがcに何個あるか
  for (int i = 0; i < n; ++i) ++c_count[c[i]];

  long long ans = 0;
  for (int i = 0; i < n; ++i)
    ans += b_count[i] * c_count[i];
  std::cout << ans << std::endl;

  return 0;
}

#include <bits/stdc++.h>
using namespace std;
#define rep(i, n) for (int i = 0; i < (int)(n); i++)

int main() {
  int N;
  cin >> N;

  vector<int> A(N);
  vector<int> B(N);
  vector<int> C(N);

  rep(i, N) {
    cin >> A.at(i);
  }

  rep(i, N) {
    cin >> B.at(i);
  }

  rep(i, N) {
    cin >> C.at(i);
  }


  int64_t ret = 0;

  vector<int> m(N);

  rep(i, N) {
    m[B[C[i]-1]]++;
  }

  rep(i, N) {
    ret += m[A[i]];
  }


  cout << ret << endl;
}