#include <bits/stdc++.h>
using namespace std;
template <typename T>
void out(T x) {
  cout << x << endl;
  exit(0);
}
const int maxn = 1e6 + 5;
int n;
int a[maxn];
int b[maxn];
bool viz[maxn];
int cc;
void dfs(int at) {
  if (viz[at]) return;
  viz[at] = true;
  dfs(a[at]);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  cin >> n;
  for (int i = 1; i <= n; i++) {
    cin >> a[i];
  }
  for (int i = 1; i <= n; i++) {
    cin >> b[i];
  }
  for (int i = 1; i <= n; i++) {
    if (!viz[i]) {
      dfs(i);
      cc++;
    }
  }
  int ans = 0;
  if (cc > 1) ans += cc;
  int cnt = 0;
  for (int i = 1; i <= n; i++) {
    cnt += b[i];
  }
  if (cnt % 2 == 0) {
    ans++;
  }
  cout << ans << endl;
  return 0;
}
