#include <bits/stdc++.h>
using namespace std;
vector<int> adj[(int)1e5];
int colors[(int)1e5];
int id[(int)1e5];
int parent[(int)1e5];
int ans;
void dfs(int node, int color) {
  id[node] = color;
  for (int a : adj[node]) {
    dfs(a, color);
  }
}
int main() {
  memset(id, 0, sizeof id);
  int n;
  cin >> n;
  for (int i = 2; i <= n; i++) {
    int a;
    cin >> a;
    adj[a].push_back(i);
    parent[i] = a;
  }
  for (int i = 1; i <= n; i++) {
    cin >> colors[i];
  }
  queue<int> q;
  q.push(1);
  while (!q.empty()) {
    int t = q.front();
    q.pop();
    for (int a : adj[t]) {
      q.push(a);
    }
    if (colors[t] != id[parent[t]]) {
      ans++;
    }
    dfs(t, colors[t]);
  }
  cout << ans << endl;
}
