#include <bits/stdc++.h>
using namespace std;
int Cv = 1 << 18, n, pre[200001], s[200001], is = 0, i = 2, ij[200001],
    sub[4 * 200001], load[4 * 200001], par[200001], son[200001], a, ip = 2,
    v[4 * 200001];
vector<vector<int> > tab(200001);
int q;
string z;
inline int fx(int p) {
  if (load[p] % 2 == 1)
    return v[p] - sub[p];
  else
    return sub[p];
}
void insert(int l, int r) {
  l += Cv, r += Cv;
  load[l]++;
  if (r != l) load[r]++;
  while (l > 0) {
    if (l % 2 == 0 && r - l > 1) load[l + 1]++;
    if (r % 2 == 1 && r - l > 1) load[r - 1]++;
    if (l < Cv)
      sub[l] = fx(2 * l + 1) + fx(2 * l), sub[r] = fx(2 * r + 1) + fx(2 * r);
    l /= 2, r /= 2;
  }
}
int query(int l, int r) {
  l += Cv, r += Cv;
  int wynnl = 0, wynnr = 0, nopl = 0, nopr = 0;
  wynnl += sub[l], nopl = 1;
  if (r != l) wynnr += sub[r], nopr = 1;
  while (l > 0) {
    if (load[l] % 2 == 1) wynnl = nopl - wynnl;
    if (load[r] % 2 == 1) wynnr = nopr - wynnr;
    if (l % 2 == 0 && r - l > 1) wynnl += fx(l + 1), nopl += v[l];
    if (r % 2 == 1 && r - l > 1) wynnr += fx(r - 1), nopr += v[r];
    l /= 2, r /= 2;
  }
  return wynnl + wynnr;
}
int main() {
  scanf("%d", &n);
  while (i <= n) {
    scanf("%d", &a);
    tab[i].push_back(a), tab[a].push_back(i);
    ij[a]++, ij[i]++;
    i++;
  }
  s[0] = 1, is = 1, pre[1] = 1;
  while (is > 0) {
    a = s[is - 1];
    if (ij[a] > 0 && par[a] == tab[a][ij[a] - 1]) ij[a]--;
    if (ij[a] > 0)
      s[is] = tab[a][ij[a] - 1], pre[s[is]] = ip, par[s[is]] = a, is++, ip++,
      ij[a]--;
    else {
      son[a]++;
      son[par[a]] += son[a];
      is--;
    }
  }
  i = 1;
  while (i <= n) {
    scanf("%d", &sub[Cv + pre[i]]);
    i++;
  }
  i = Cv;
  while (i < 2 * Cv) {
    v[i] = 1;
    i++;
  }
  i = Cv - 1;
  while (i > 0) {
    sub[i] = sub[i * 2] + sub[i * 2 + 1];
    v[i] = v[i * 2] + v[i * 2 + 1];
    i--;
  }
  scanf("%d", &q);
  while (q--) {
    cin >> z;
    if (z == "get") {
      scanf("%d", &a);
      printf("%d\n", query(pre[a], pre[a] + son[a] - 1));
    } else {
      scanf("%d", &a);
      insert(pre[a], pre[a] + son[a] - 1);
    }
  }
  return 0;
}
