#include <bits/stdc++.h>
using namespace std;
int n, ans, c[100000];
vector<int> adj[100000];
int visited[100000];
void DFS(int u, int cor) {
  if (cor != c[u]) {
    ans++;
    cor = c[u];
  }
  visited[u] = cor;
  for (int i = 0; i < adj[u].size(); i++) {
    int v = adj[u][i];
    if (!visited[v]) {
      DFS(v, cor);
    }
  }
}
int main() {
  cin >> n;
  for (long long(i) = (2); (i) < (n + 1); (i)++) {
    int x;
    cin >> x;
    adj[x].push_back(i);
    adj[i].push_back(x);
  }
  for (long long(i) = (1); (i) < (n + 1); (i)++) {
    cin >> c[i];
  }
  ans = 1;
  memset(visited, 0, sizeof(visited));
  DFS(1, c[1]);
  cout << ans << endl;
  return 0;
}
