#include<bits/stdc++.h>
using namespace std;

#define    ll              long long int
#define    rd(a)           cin>>a
#define    pt(a)           cout<<a
#define    pb              push_back
#define    mp              make_pair
#define    cl              endl
#define    ifor(i,a,b)     for(i=a;i<=b;i++)
#define    dfor(i,a,b)     for(i=a;i>=b;i--)
#define    pii             pair<int,int>
#define    sz              100000
#define    mad             1000000007

struct nod {
    
    int ob;
    int cb;
};

struct nod tree[4*sz +5];
char a[sz+5];
int n;

void build(int node,int s,int e) {
    
    if(s==e) {
        
        if(a[s]=='(') {
            
            tree[node].ob=1;
            tree[node].cb=0;
        }
        else {
            tree[node].ob=0;
            tree[node].cb=1;
        }
    }
    else {
        
        int mid=(s+e)/2;
        
        build(2*node,s,mid);
        build(2*node +1,mid+1,e);
        
        int mb=min(tree[2*node].ob,tree[2*node +1].cb);
        
        tree[node].ob=tree[2*node].ob + tree[2*node +1].ob -mb;
        tree[node].cb=tree[2*node].cb + tree[2*node +1].cb -mb;
    }
}

void update(int node,int s,int e,int idx) {
    
    if(s==idx) {
        
        if(a[s]==')') {
            
            tree[node].ob=1;
            tree[node].cb=0;
            a[s]='(';
        }
        else {
            
            tree[node].ob=0;
            tree[node].cb=1;
            a[s]=')';
        }
    }
    else {
        
        int mid=(s+e)/2;
        
        if(s<=idx && idx<=mid) {
            update(2*node,s,mid,idx);
        }
        else {
            update(2*node +1,mid+1,e,idx);
        }
        
        int mb=min(tree[2*node].ob,tree[2*node +1].cb);
        
        tree[node].ob=tree[2*node].ob + tree[2*node +1].ob -mb;
        tree[node].cb=tree[2*node].cb + tree[2*node +1].cb -mb;
    }
}
int main() {
    
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    int t;
    int i,j,k;
    
    string s;
    t=10;
    for(k=1;k<=t;k++) {
        
        cin>>n;
        cin>>s;
        n=s.size();
        
        //cout<<"s="<<s<<"\n";
        
        for(i=0;i<n;i++) {
            
            if(s[i]==')') {
                a[i+1]=s[i];
            }
            else {
                a[i+1]=s[i];     // if(s[i]=='(')
            }
        }
        build(1,1,n);
   
   
        cout<<"Test "<<k<<":"<<"\n";
        int q,d;cin>>q;
        while(q--) {
            
            cin>>d;
            if(d!=0) {
                update(1,1,n,d);
            }
            else {
                
                if(tree[1].ob==0 && tree[1].cb==0) cout<<"YES\n";
                else cout<<"NO\n";
            }
        }
    }
    
    return 0;
}