#include<bits/stdc++.h>
using namespace std;
#define ll long long
void buildTree(string str,ll s,ll e,vector<pair<pair<ll,ll>,bool>>&tree,ll i)
{
if(s==e)
{
pair<ll,ll>p1;
if(str[s]=='(')
p1=make_pair(1,0);
else
p1=make_pair(0,1);
pair<pair<ll,ll>,bool>p=make_pair(p1,false);
tree[i]=p;
return;
}
ll mid=s+(e-s)/2;
buildTree(str,s,mid,tree,2*i);
buildTree(str,mid+1,e,tree,2*i+1);
ll toa=tree[2*i].first.first;
ll tca=tree[2*i].first.second;
ll tob=tree[2*i+1].first.first;
ll tcb=tree[2*i+1].first.second;
bool b=(toa+tob==tca+tcb)?true:false;
pair<ll,ll>pbar=make_pair(toa+tob,tca+tcb);
pair<pair<ll,ll>,bool>pdash=make_pair(pbar,b);
tree[i]=pdash;
return;
}
void update(string str,vector<pair<pair<ll,ll>,bool>>&tree,ll s,ll e,ll i,ll index)
{
if(i<s || i>e)
return;
if(s==e)
{
if(str[i]==')')
{
tree[index].first.second--;
tree[index].first.first++;
if(tree[index].first.first==tree[index].first.second)
tree[index].second=true;
else
tree[index].second=false;
}
else
{
tree[index].first.first--;
tree[index].first.second++;
if(tree[index].first.first==tree[index].first.second)
tree[index].second=true;
else
tree[index].second=false;
}
return;
}
ll mid=s+(e-s)/2;
update(str,tree,s,mid,i,2*index);
update(str,tree,mid+1,e,i,2*index+1);
ll toa=tree[2*index].first.first;
ll tca=tree[2*index].first.second;
ll tob=tree[2*index+1].first.first;
ll tcb=tree[2*index+1].first.second;
bool b=(toa+tob==tca+tcb)?true:false;
pair<ll,ll>pbar=make_pair(toa+tob,tca+tcb);
pair<pair<ll,ll>,bool>pdash=make_pair(pbar,b);
tree[index]=pdash;
return;
}
bool check(vector<pair<pair<ll,ll>,bool>>&tree)
{
// for(int i=1;i<=13;i++)
// cout<<i<<" "<<tree[i].first.first<<" "<<tree[i].first.second<<" "<<tree[i].second<<endl;
return tree[1].second;
}
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL);
for(int tc=1;tc<=10;tc++)
{
ll n;
cin>>n;
vector<pair<pair<ll,ll>,bool>>tree(4*n+1);
string s;
cin>>s;
//cout<<s<<endl;
buildTree(s,0,n-1,tree,1);
ll m;
cin>>m;
cout<<"Test "<<tc<<":"<<endl;
while(m--)
{
ll k;
cin>>k;
if(k==0)
{
if(check(tree))
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
else
{
update(s,tree,0,n-1,k-1,1);
}
}
}
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBsbCBsb25nIGxvbmcKdm9pZCBidWlsZFRyZWUoc3RyaW5nIHN0cixsbCBzLGxsIGUsdmVjdG9yPHBhaXI8cGFpcjxsbCxsbD4sYm9vbD4+JnRyZWUsbGwgaSkKewogICAgaWYocz09ZSkKICAgIHsKICAgICAgICBwYWlyPGxsLGxsPnAxOwogICAgICAgIGlmKHN0cltzXT09JygnKSAgICAgICAKICAgICAgICAgICAgcDE9bWFrZV9wYWlyKDEsMCk7CiAgICAgICAgZWxzZQogICAgICAgICAgICBwMT1tYWtlX3BhaXIoMCwxKTsKICAgICAgICBwYWlyPHBhaXI8bGwsbGw+LGJvb2w+cD1tYWtlX3BhaXIocDEsZmFsc2UpOwogICAgICAgIHRyZWVbaV09cDsKICAgICAgICByZXR1cm47CiAgICB9CiAgICBsbCBtaWQ9cysoZS1zKS8yOwogICAgYnVpbGRUcmVlKHN0cixzLG1pZCx0cmVlLDIqaSk7CiAgICBidWlsZFRyZWUoc3RyLG1pZCsxLGUsdHJlZSwyKmkrMSk7CiAgICBsbCB0b2E9dHJlZVsyKmldLmZpcnN0LmZpcnN0OwogICAgbGwgdGNhPXRyZWVbMippXS5maXJzdC5zZWNvbmQ7CiAgICBsbCB0b2I9dHJlZVsyKmkrMV0uZmlyc3QuZmlyc3Q7CiAgICBsbCB0Y2I9dHJlZVsyKmkrMV0uZmlyc3Quc2Vjb25kOwogICAgYm9vbCBiPSh0b2ErdG9iPT10Y2ErdGNiKT90cnVlOmZhbHNlOwogICAgcGFpcjxsbCxsbD5wYmFyPW1ha2VfcGFpcih0b2ErdG9iLHRjYSt0Y2IpOwogICAgcGFpcjxwYWlyPGxsLGxsPixib29sPnBkYXNoPW1ha2VfcGFpcihwYmFyLGIpOwogICAgdHJlZVtpXT1wZGFzaDsKICAgIHJldHVybjsKfQp2b2lkIHVwZGF0ZShzdHJpbmcgc3RyLHZlY3RvcjxwYWlyPHBhaXI8bGwsbGw+LGJvb2w+PiZ0cmVlLGxsIHMsbGwgZSxsbCBpLGxsIGluZGV4KQp7CiAgICBpZihpPHMgfHwgaT5lKQogICAgICAgIHJldHVybjsKICAgIGlmKHM9PWUpCiAgICB7CiAgICAgICAgaWYoc3RyW2ldPT0nKScpCiAgICAgICAgewogICAgICAgICAgICB0cmVlW2luZGV4XS5maXJzdC5zZWNvbmQtLTsKICAgICAgICAgICAgdHJlZVtpbmRleF0uZmlyc3QuZmlyc3QrKzsKICAgICAgICAgICAgaWYodHJlZVtpbmRleF0uZmlyc3QuZmlyc3Q9PXRyZWVbaW5kZXhdLmZpcnN0LnNlY29uZCkKICAgICAgICAgICAgICAgIHRyZWVbaW5kZXhdLnNlY29uZD10cnVlOwogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB0cmVlW2luZGV4XS5zZWNvbmQ9ZmFsc2U7CiAgICAgICAgfQogICAgICAgIGVsc2UKICAgICAgICB7CiAgICAgICAgICAgIHRyZWVbaW5kZXhdLmZpcnN0LmZpcnN0LS07CiAgICAgICAgICAgIHRyZWVbaW5kZXhdLmZpcnN0LnNlY29uZCsrOwogICAgICAgICAgICBpZih0cmVlW2luZGV4XS5maXJzdC5maXJzdD09dHJlZVtpbmRleF0uZmlyc3Quc2Vjb25kKQogICAgICAgICAgICAgICAgdHJlZVtpbmRleF0uc2Vjb25kPXRydWU7CiAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgIHRyZWVbaW5kZXhdLnNlY29uZD1mYWxzZTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuOyAgICAgICAKICAgIH0KICAgIGxsIG1pZD1zKyhlLXMpLzI7CiAgICB1cGRhdGUoc3RyLHRyZWUscyxtaWQsaSwyKmluZGV4KTsKICAgIHVwZGF0ZShzdHIsdHJlZSxtaWQrMSxlLGksMippbmRleCsxKTsKICAgIGxsIHRvYT10cmVlWzIqaW5kZXhdLmZpcnN0LmZpcnN0OwogICAgbGwgdGNhPXRyZWVbMippbmRleF0uZmlyc3Quc2Vjb25kOwogICAgbGwgdG9iPXRyZWVbMippbmRleCsxXS5maXJzdC5maXJzdDsKICAgIGxsIHRjYj10cmVlWzIqaW5kZXgrMV0uZmlyc3Quc2Vjb25kOwogICAgYm9vbCBiPSh0b2ErdG9iPT10Y2ErdGNiKT90cnVlOmZhbHNlOwogICAgcGFpcjxsbCxsbD5wYmFyPW1ha2VfcGFpcih0b2ErdG9iLHRjYSt0Y2IpOwogICAgcGFpcjxwYWlyPGxsLGxsPixib29sPnBkYXNoPW1ha2VfcGFpcihwYmFyLGIpOwogICAgdHJlZVtpbmRleF09cGRhc2g7CiAgICByZXR1cm47Cn0KYm9vbCBjaGVjayh2ZWN0b3I8cGFpcjxwYWlyPGxsLGxsPixib29sPj4mdHJlZSkKewogICAgLy8gZm9yKGludCBpPTE7aTw9MTM7aSsrKQogICAgLy8gICAgIGNvdXQ8PGk8PCIgIjw8dHJlZVtpXS5maXJzdC5maXJzdDw8IiAiPDx0cmVlW2ldLmZpcnN0LnNlY29uZDw8IiAiPDx0cmVlW2ldLnNlY29uZDw8ZW5kbDsKICAgIHJldHVybiB0cmVlWzFdLnNlY29uZDsKfQppbnQgbWFpbigpCnsgICAKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShOVUxMKTsgCiAgICBmb3IoaW50IHRjPTE7dGM8PTEwO3RjKyspCiAgICB7ICAgICAgCiAgICAgICAgbGwgbjsKICAgICAgICBjaW4+Pm47CiAgICAgICAgdmVjdG9yPHBhaXI8cGFpcjxsbCxsbD4sYm9vbD4+dHJlZSg0Km4rMSk7CiAgICAgICAgc3RyaW5nIHM7CiAgICAgICAgY2luPj5zOwogICAgICAgIC8vY291dDw8czw8ZW5kbDsKICAgICAgICBidWlsZFRyZWUocywwLG4tMSx0cmVlLDEpOyAgICAgICAgCiAgICAgICAgbGwgbTsKICAgICAgICBjaW4+Pm07CiAgICAgICAgY291dDw8IlRlc3QgIjw8dGM8PCI6Ijw8ZW5kbDsKICAgICAgICB3aGlsZShtLS0pCiAgICAgICAgewogICAgICAgICAgICBsbCBrOwogICAgICAgICAgICBjaW4+Pms7CiAgICAgICAgICAgIGlmKGs9PTApCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmKGNoZWNrKHRyZWUpKQogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJZRVMiPDxlbmRsOwogICAgICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgICAgIGNvdXQ8PCJOTyI8PGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZWxzZQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB1cGRhdGUocyx0cmVlLDAsbi0xLGstMSwxKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAp9