#include <bits/stdc++.h>
using namespace std;
struct lady {
  int a, b, c;
} l[555555];
int res = 0, n;
int bit[555555];
vector<int> v;
bool cmp(lady &x, lady &y) {
  if (x.a == y.a) {
    if (x.b == y.b) {
      return x.c > y.c;
    }
    return x.b > y.b;
  }
  return x.a > y.a;
}
void add(int ind, int val) {
  for (int j = ind; j <= n; j += j & -j) {
    bit[j] = max(bit[j], val);
  }
}
int sum(int ind) {
  int ans = bit[ind];
  for (int j = ind; j > 0; j -= j & -j) {
    ans = max(ans, bit[j]);
  }
  return ans;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> l[i].a;
  }
  for (int i = 1; i <= n; i++) {
    cin >> l[i].b;
    v.push_back(l[i].b);
  }
  for (int i = 1; i <= n; i++) {
    cin >> l[i].c;
  }
  sort(l + 1, l + n + 1, cmp);
  sort(v.begin(), v.end());
  int sz = unique(v.begin(), v.end()) - v.begin();
  for (int i = 1; i <= n; i++) {
    l[i].b =
        n - (lower_bound(v.begin(), v.begin() + sz, l[i].b) - v.begin()) + 1;
  }
  int j = 1;
  for (int i = 1; i <= n;) {
    while (j <= n and l[j].a == l[i].a) {
      j++;
    }
    for (int k = j - 1; k >= i; k--) {
      if (sum(l[k].b - 1) <= l[k].c) {
        res++;
      }
    }
    while (i < j) {
      add(l[i].b, l[i].c);
      i++;
    }
  }
  cout << n - res << endl;
  return 0;
}
