#include <bits/stdc++.h>
using namespace std;
int64_t power(int a, int b) {
  int64_t ans = 1;
  while (b != 0) {
    if (b & 1) {
      ans *= a;
    }
    a = a * a;
    b = b >> 1;
  }
  return ans;
}
int main() {
  map<int, vector<int>> l;
  int n, a;
  cin >> n;
  int color[n + 1];
  int visited[n + 1];
  int req_color[n + 1];
  int k = 2;
  memset(visited, 0, sizeof(visited));
  for (int i = 0; i < n - 1; i++) {
    cin >> a;
    l[k].push_back(a);
    l[a].push_back(k++);
  }
  for (int i = 0; i < n; i++) {
    cin >> req_color[i + 1];
  }
  for (int i = 0; i <= n; i++) {
    color[i] = req_color[1];
  }
  int count = 1;
  queue<int> q;
  q.push(1);
  visited[1] = 1;
  while (!q.empty()) {
    int u = q.front();
    q.pop();
    if (color[u] != req_color[u]) {
      count++;
      color[u] = req_color[u];
    }
    for (auto x : l[u]) {
      if (visited[x] == 0) {
        visited[x] = 1;
        q.push(x);
        color[x] = color[u];
      }
    }
  }
  cout << count << endl;
  return 0;
}
