#include<bits/stdc++.h>
using namespace std;
#define ll long long
struct node{
ll sum,min;
}
tree[3*100005];
char s[100005];
void build(ll node, ll st, ll ed){
if(st==ed){
if(s[st]=='('){
tree[node].sum=tree[node].min=1;
}
else{
tree[node].sum=tree[node].min=-1;
}
return;
}
ll mid=(st+ed)/2;
build(node*2,st,mid);
build(node*2+1,mid+1,ed);
tree[node].sum=tree[node*2].sum + tree[node*2+1].sum;
tree[node].min=min(tree[2*node].min,tree[2*node].min+tree[node*2+1].min);
}
void update(ll node,ll st,ll ed,ll pos){
if(st==pos && ed==pos){
tree[node].sum=-tree[node].sum;
tree[node].min=-tree[node].sum;
return ;
}
ll mid = (st + ed) / 2;
if(st <= pos and pos <= mid)
update(2*node, st, mid, pos);
else
update(2*node+1, mid+1, ed, pos);
tree[node].sum=tree[2*node].sum + tree[2*node+1].sum;
tree[node].min=min(tree[2*node].min, tree[2*node].min + tree[2*node+1].min);
}
int main()
{
ll n,q,i,x,op,t=1;
while(scanf("%lld",&n)==1){
printf("Test %lld:\n",t++);
scanf("%s",s);
build(1,0,n-1);
scanf("%lld",&q);
for(i=0;i<q;i++){
scanf("%lld",&op);
if(op==0){
if(tree[1].sum==0 && tree[1].min==0)
printf("YES\n");
else
printf("NO\n");
}
else{
update(1,0,n-1,op-1);
}
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKc3RydWN0IG5vZGV7CmxsIHN1bSxtaW47Cn0KdHJlZVszKjEwMDAwNV07CmNoYXIgc1sxMDAwMDVdOwp2b2lkIGJ1aWxkKGxsIG5vZGUsIGxsIHN0LCBsbCBlZCl7CiAgICBpZihzdD09ZWQpewogICAgICAgIGlmKHNbc3RdPT0nKCcpewogICAgICAgICAgICB0cmVlW25vZGVdLnN1bT10cmVlW25vZGVdLm1pbj0xOwogICAgICAgIH0KICAgICAgICBlbHNlewogICAgICAgICAgICB0cmVlW25vZGVdLnN1bT10cmVlW25vZGVdLm1pbj0tMTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuOwogICAgfQogICAgbGwgbWlkPShzdCtlZCkvMjsKICAgIGJ1aWxkKG5vZGUqMixzdCxtaWQpOwogICAgYnVpbGQobm9kZSoyKzEsbWlkKzEsZWQpOwogICAgdHJlZVtub2RlXS5zdW09dHJlZVtub2RlKjJdLnN1bSArIHRyZWVbbm9kZSoyKzFdLnN1bTsKICAgIHRyZWVbbm9kZV0ubWluPW1pbih0cmVlWzIqbm9kZV0ubWluLHRyZWVbMipub2RlXS5taW4rdHJlZVtub2RlKjIrMV0ubWluKTsKfQp2b2lkIHVwZGF0ZShsbCBub2RlLGxsIHN0LGxsIGVkLGxsIHBvcyl7CiAgICBpZihzdD09cG9zICYmIGVkPT1wb3MpewogICAgICAgIHRyZWVbbm9kZV0uc3VtPS10cmVlW25vZGVdLnN1bTsKICAgICAgICB0cmVlW25vZGVdLm1pbj0tdHJlZVtub2RlXS5zdW07CiAgICAgICAgcmV0dXJuIDsKICAgIH0KICAgICAgICBsbCBtaWQgPSAoc3QgKyBlZCkgLyAyOwogICAgICAgIGlmKHN0IDw9IHBvcyBhbmQgcG9zIDw9IG1pZCkKICAgICAgICAgICAgdXBkYXRlKDIqbm9kZSwgc3QsIG1pZCwgcG9zKTsKICAgICAgICBlbHNlCiAgICAgICAgICAgIHVwZGF0ZSgyKm5vZGUrMSwgbWlkKzEsIGVkLCBwb3MpOwoKICAgICAgICB0cmVlW25vZGVdLnN1bT10cmVlWzIqbm9kZV0uc3VtICsgdHJlZVsyKm5vZGUrMV0uc3VtOwogICAgICAgIHRyZWVbbm9kZV0ubWluPW1pbih0cmVlWzIqbm9kZV0ubWluLCB0cmVlWzIqbm9kZV0ubWluICsgdHJlZVsyKm5vZGUrMV0ubWluKTsKfQppbnQgbWFpbigpCnsKICAgIGxsIG4scSxpLHgsb3AsdD0xOwogICAgd2hpbGUoc2NhbmYoIiVsbGQiLCZuKT09MSl7CiAgICAgICAgICAgIHByaW50ZigiVGVzdCAlbGxkOlxuIix0KyspOwogICAgICAgICAgICBzY2FuZigiJXMiLHMpOwogICAgICAgICAgICBidWlsZCgxLDAsbi0xKTsKICAgICAgICAgICAgc2NhbmYoIiVsbGQiLCZxKTsKICAgICAgICAgICAgZm9yKGk9MDtpPHE7aSsrKXsKICAgICAgICAgICAgICAgIHNjYW5mKCIlbGxkIiwmb3ApOwogICAgICAgICAgICAgICAgaWYob3A9PTApewogICAgICAgICAgICAgICAgICAgIGlmKHRyZWVbMV0uc3VtPT0wICYmIHRyZWVbMV0ubWluPT0wKQogICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJZRVNcbiIpOwogICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgcHJpbnRmKCJOT1xuIik7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgIHVwZGF0ZSgxLDAsbi0xLG9wLTEpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICB9CiAgICByZXR1cm4gMDsKfQoK