#define _USE_MATH_DEFINES
#include <bits/stdc++.h>
using namespace std;
#define FOR(i,m,n) for(int i=(m);i<(n);++i)
#define REP(i,n) FOR(i,0,n)
#define ALL(v) (v).begin(),(v).end()
using ll = long long;
constexpr int INF = 0x3f3f3f3f;
constexpr long long LINF = 0x3f3f3f3f3f3f3f3fLL;
constexpr double EPS = 1e-8;
constexpr int MOD = 1000000007;
// constexpr int MOD = 998244353;
constexpr int dy[] = {1, 0, -1, 0}, dx[] = {0, -1, 0, 1};
constexpr int dy8[] = {1, 1, 0, -1, -1, -1, 0, 1}, dx8[] = {0, -1, -1, -1, 0, 1, 1, 1};
template <typename T, typename U> inline bool chmax(T &a, U b) { return a < b ? (a = b, true) : false; }
template <typename T, typename U> inline bool chmin(T &a, U b) { return a > b ? (a = b, true) : false; }
struct IOSetup {
  IOSetup() {
    std::cin.tie(nullptr);
    std::ios_base::sync_with_stdio(false);
    std::cout << fixed << setprecision(20);
  }
} iosetup;

int main() {
  int n; cin >> n;
  vector<int> a(n), b(n), wb(n, 0);
  REP(i, n) cin >> a[i], --a[i];
  REP(i, n) cin >> b[i], --b[i];
  REP(i, n) {
    int c; cin >> c; --c;
    ++wb[c];
  }
  vector<int> cnt(n, 0);
  REP(i, n) cnt[b[i]] += wb[i];
  ll ans = 0;
  REP(i, n) ans += cnt[a[i]];
  cout << ans << '\n';
  return 0;
}

#include<bits/stdc++.h>
#define int long long
using namespace std;
const int maxn=1e5+5;
int n,shu1[maxn],shu2[maxn],shu3[maxn];
int ans,num1[maxn],num2[maxn],num3[maxn],num[maxn];
signed main()
{
	#ifndef LZVTJL
	ios::sync_with_stdio(false);
	#endif
	cin>>n;
	for(int i=1;i<=n;++i)cin>>shu1[i];
	for(int i=1;i<=n;++i)cin>>shu2[i];
	for(int i=1;i<=n;++i)cin>>shu3[i];
	for(int i=1;i<=n;++i)++num3[shu3[i]];
	for(int i=1;i<=n;++i)num2[shu2[i]]+=num3[i];
	for(int i=1;i<=n;++i)++num1[shu1[i]];
	for(int i=1;i<=n;++i)ans+=num1[i]*num2[i];
	cout<<ans;
}