#include <bits/stdc++.h>
const long long MOD = 1e9 + 7;
const long long MAXN = 1e6 + 1;
using namespace std;
long long readInt() {
  bool minus1 = false;
  long long result = 0;
  char ch;
  ch = getchar();
  while (true) {
    if (ch == '-') break;
    if (ch >= '0' && ch <= '9') break;
    ch = getchar();
  }
  if (ch == '-')
    minus1 = true;
  else
    result = ch - '0';
  while (true) {
    ch = getchar();
    if (ch<'0' | ch> '9') break;
    result = result * 10 + (ch - '0');
  }
  if (minus1)
    return -result;
  else
    return result;
}
vector<int> g[MAXN];
int c[MAXN];
int ans = 0;
void dfs(int x, int color, int par) {
  if (color != c[x]) {
    ans++;
  }
  for (auto i : g[x]) {
    if (i == par) continue;
    dfs(i, c[x], x);
  }
}
int main() {
  int n;
  cin >> n;
  for (int i = 2; i <= n; i++) {
    int x;
    cin >> x;
    g[x].push_back(i);
    g[i].push_back(x);
  }
  for (int i = 1; i <= n; i++) {
    cin >> c[i];
  }
  dfs(1, 0, -1);
  cout << ans;
}
