#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define rep(i,n) for(int i=0;i<(n);i++) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #define sz(x) ((int)(x).size()) #define pb push_back using ll = long long; using namespace std; templatebool chmax(T &a, const T &b) { if (abool chmin(T &a, const T &b) { if (b> N; vector X(N); vector o(N-1); rep(i,N){ string s; cin >> s; X[i]=(s=="True"); } rep(i,N-1){ cin >> o[i]; } atcoder::lazy_segtree seg(N); rep(i,N-1){ int p; cin >> p; p--; int pp = seg.get(p); int ppp = seg.get(p+1); X[pp] = calc(X[pp],o[pp],X[ppp]); seg.apply(ppp,N,1); } cout << (X[0]?"True":"False") << '\n'; } int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while(T--) solve(); return 0; }