#include <bits/stdc++.h>
using namespace std;
const int N = 20005;
int n, x;
int f[N], nex[N * 2], go[N * 2], cnt;
int C[N], ans;
void add_edge(int u, int v) {
  cnt++;
  go[cnt] = v;
  nex[cnt] = f[u];
  f[u] = cnt;
}
void treef(int Node, int col, int fa) {
  if (C[Node] != col) ans++;
  for (int i = f[Node]; i; i = nex[i]) {
    if (go[i] == fa) continue;
    treef(go[i], C[Node], Node);
  }
}
int main() {
  cin >> n;
  for (int i = 2; i <= n; i++) {
    scanf("%d", &x);
    add_edge(i, x);
    add_edge(x, i);
  }
  for (int i = 1; i <= n; i++) {
    cin >> C[i];
  }
  ans++;
  for (int i = f[1]; i; i = nex[i]) {
    treef(go[i], C[1], 1);
  }
  cout << ans;
  return 0;
}
