#include <bits/stdc++.h>
using namespace std;
const long long INF = 0x3f3f3f3f;
const double eps = 1e-8;
const double PI = acos(-1.0);
const long long MAXN = 1e5 + 5;
const long long MOD = 1e9 + 7;
inline long long in() {
  long long f = 1, p = 0;
  char c = getchar();
  while (c < '0' || c > '9') {
    if (c == '-') f = -1;
    c = getchar();
  }
  while (c >= '0' && c <= '9') {
    p = p * 10 + c - '0';
    c = getchar();
  }
  return f * p;
}
int n, m, k;
int p[105], s[105], c[105];
vector<pair<long long, long long> > ve[105];
bool cmp(pair<long long, long long> a, pair<long long, long long> b) {
  return a.first > b.first;
}
int main() {
  cin >> n >> m >> k;
  for (int i = 1; i <= n; i++) cin >> p[i];
  for (int i = 1; i <= n; i++) cin >> s[i];
  for (int i = 1; i <= k; i++) cin >> c[i];
  for (int i = 1; i <= n; i++) {
    ve[s[i]].push_back(make_pair(p[i], i));
  }
  for (int i = 0; i < 105; i++) sort((ve[i]).begin(), (ve[i]).end(), cmp);
  int res = 0;
  for (int i = 1; i <= k; i++) {
    int po = s[c[i]];
    for (int j = 0; j < ve[po].size(); j++) {
      if (ve[po][j].second != c[i]) res++;
      break;
    }
  }
  cout << res;
}
