#include <bits/stdc++.h>
using namespace std;
#define mp make_pair
#define pb push_back
//#pragma comment (linker, "/STACK:256000000")
#define fileio freopen("in.txt","r",stdin); freopen("out.txt","w",stdout);
#define boost ios_base::sync_with_stdio(false);
/* Aag ka dariya hai , doob ke jana hai :P */
// vabs
int seg[100003]={0} , arr[30003]={0} , lazy[100003]={0};
char str[30003];
void build(int node,int x,int y)
{
if(x>y)
return ;
if(x==y)
{
seg[node] = arr[x];
lazy[node] = 0;
return ;
}
build(node*2,x,(x+y)/2);
build(node*2+1,(x+y)/2+1,y);
seg[node] = min( seg[node*2] , seg[node*2+1] );
lazy[node] = 0;
}
/*int query(int node,int x,int y,int i,int j)
{
//cout<<i<<"_"<<j<<endl;
int p1=0,p2=0,q1=0,q2=0;
if(x>y||y<i||x>j)
return -1;
if(lazy[node]!=0)
{
long long int d = y-x+1;
seg[node] += ((d*(d+1))/2) + (lazy[node]-1)*d;
if(x!=y)
{
lazy[node*2] += lazy[node];
lazy[node*2+1] += lazy[node] + (y+x)/2 +1 -x;
}
lazy[node]=0;
}
if(x>=i&&y<=j)
{
return seg[node];
}
p1=query(node*2,x,(x+y)/2,i,j);
p2=query(node*2+1,(x+y)/2+1,y,i,j);
if(p1==-1)
return p2;
if(p2==-1)
return p1;
return (p1+p2);
}*/
void update(int node,int x,int y,int i,int j,int v)
{
//cout<<node<<"_"<<"_"<<x<<"_"<<y<<"_"<<endl;
if(lazy[node]!=0)
{
seg[node] += lazy[node];
if(x!=y)
{
lazy[node*2] += lazy[node];
lazy[node*2+1] += lazy[node] ;
}
lazy[node]=0;
}
if(x>y||y<i||x>j)
return ;
if(x>=i&&y<=j)
{
//cout<<seg[node]<<endl;
seg[node] += v;
if(x!=y)
{
lazy[node*2] += v;
lazy[node*2+1] += v;
}
return ;
}
update(node*2,x,(x+y)/2,i,j,v);
update(1+node*2,(x+y)/2+1,y,i,j,v);
seg[node]=min( seg[node*2] , seg[node*2+1] );
//cout<<seg[node]<<endl;
}
int main()
{
int tc,i,x,y,j,k,v,n,sum,u;
for(u=1;u<=10;u++)
{
printf("Test %d:\n",u);
memset(seg,-1,sizeof(seg));
memset(lazy,0,sizeof(lazy));
memset(arr,0,sizeof(arr));
scanf("%d%s%d",&n,str,&k);
for(i=0;i<n;i++)
{
arr[i+1] = arr[i] + (str[i] == ')'?-1:1);
// cout<<arr[i+1];
}
build(1,1,n);
sum = arr[n];
for(i=0;i<k;i++)
{
cin>>x;
//cout<<arr[n]<<endl;
//scanf("%c%d%d",&ch,&x,&y);
if(x == 0)
{
x = seg[1];
if(x<0 || sum !=0)
printf("NO\n");
else
printf("YES\n");
}
else
{
if(str[x-1] == ')')
{
v = 2;
str[x-1] = '(';
}
else
{
v =-2;
str[x-1] = ')';
}
sum+=v;
update(1,1,n,x,n,v);
}
/*for(v=1;v<=10;v++)
printf("%d_%d ",max1[v],max2[v]);
cout<<endl;*/
}
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIG1wIG1ha2VfcGFpcgojZGVmaW5lIHBiIHB1c2hfYmFjawovLyNwcmFnbWEgY29tbWVudCAobGlua2VyLCAiL1NUQUNLOjI1NjAwMDAwMCIpCiNkZWZpbmUgZmlsZWlvIGZyZW9wZW4oImluLnR4dCIsInIiLHN0ZGluKTsgZnJlb3Blbigib3V0LnR4dCIsInciLHN0ZG91dCk7CiNkZWZpbmUgYm9vc3QgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwoKLyogQWFnIGthIGRhcml5YSBoYWkgLCBkb29iIGtlIGphbmEgaGFpIDpQICovCi8vIHZhYnMKCgppbnQgc2VnWzEwMDAwM109ezB9ICwgYXJyWzMwMDAzXT17MH0gLCBsYXp5WzEwMDAwM109ezB9OwpjaGFyIHN0clszMDAwM107CnZvaWQgYnVpbGQoaW50IG5vZGUsaW50IHgsaW50IHkpCnsKCWlmKHg+eSkKCQlyZXR1cm4gOwoJaWYoeD09eSkKCXsKCQlzZWdbbm9kZV0gPSBhcnJbeF07CgkJbGF6eVtub2RlXSA9IDA7CgkJcmV0dXJuIDsKCX0KCWJ1aWxkKG5vZGUqMix4LCh4K3kpLzIpOwoJYnVpbGQobm9kZSoyKzEsKHgreSkvMisxLHkpOwoJc2VnW25vZGVdID0gbWluKCBzZWdbbm9kZSoyXSAsIHNlZ1tub2RlKjIrMV0gKTsKCWxhenlbbm9kZV0gPSAwOwp9Ci8qaW50IHF1ZXJ5KGludCBub2RlLGludCB4LGludCB5LGludCBpLGludCBqKQp7CgkvL2NvdXQ8PGk8PCJfIjw8ajw8ZW5kbDsKCWludCBwMT0wLHAyPTAscTE9MCxxMj0wOwoJCglpZih4Pnl8fHk8aXx8eD5qKQoJCXJldHVybiAtMTsKCWlmKGxhenlbbm9kZV0hPTApCgl7CgkJbG9uZyBsb25nIGludCBkID0geS14KzE7CgkJc2VnW25vZGVdICs9ICgoZCooZCsxKSkvMikgKyAobGF6eVtub2RlXS0xKSpkOwoJCWlmKHghPXkpCgkJewoJCQlsYXp5W25vZGUqMl0gKz0gbGF6eVtub2RlXTsKCQkJbGF6eVtub2RlKjIrMV0gKz0gbGF6eVtub2RlXSArICAoeSt4KS8yICsxIC14OwoJCX0KCQlsYXp5W25vZGVdPTA7Cgl9CglpZih4Pj1pJiZ5PD1qKQoJewoJCQoJCXJldHVybiBzZWdbbm9kZV07Cgl9CgoJcDE9cXVlcnkobm9kZSoyLHgsKHgreSkvMixpLGopOwoJcDI9cXVlcnkobm9kZSoyKzEsKHgreSkvMisxLHksaSxqKTsKCWlmKHAxPT0tMSkKCQlyZXR1cm4gcDI7CglpZihwMj09LTEpCgkJcmV0dXJuIHAxOwoJcmV0dXJuIChwMStwMik7Cn0qLwp2b2lkIHVwZGF0ZShpbnQgbm9kZSxpbnQgeCxpbnQgeSxpbnQgaSxpbnQgaixpbnQgdikKewoJLy9jb3V0PDxub2RlPDwiXyI8PCJfIjw8eDw8Il8iPDx5PDwiXyI8PGVuZGw7CglpZihsYXp5W25vZGVdIT0wKQoJewoJCXNlZ1tub2RlXSArPSBsYXp5W25vZGVdOwoJCWlmKHghPXkpCgkJewoJCQlsYXp5W25vZGUqMl0gKz0gbGF6eVtub2RlXTsKCQkJbGF6eVtub2RlKjIrMV0gKz0gbGF6eVtub2RlXSA7CgkJfQoJCWxhenlbbm9kZV09MDsKCX0KCQoJCQoJaWYoeD55fHx5PGl8fHg+aikKCQlyZXR1cm4gOwoJCQoJaWYoeD49aSYmeTw9aikKCXsKCQkvL2NvdXQ8PHNlZ1tub2RlXTw8ZW5kbDsJCgkJc2VnW25vZGVdICs9IHY7CgkJaWYoeCE9eSkKCQl7CgkJCWxhenlbbm9kZSoyXSArPSB2OwoJCQlsYXp5W25vZGUqMisxXSArPSB2OwoJCX0KCQkKCQlyZXR1cm4gOwoJfQoJdXBkYXRlKG5vZGUqMix4LCh4K3kpLzIsaSxqLHYpOwoJdXBkYXRlKDErbm9kZSoyLCh4K3kpLzIrMSx5LGksaix2KTsKCQoJc2VnW25vZGVdPW1pbiggc2VnW25vZGUqMl0gLCBzZWdbbm9kZSoyKzFdICk7CgkvL2NvdXQ8PHNlZ1tub2RlXTw8ZW5kbDsKfQppbnQgbWFpbigpCnsKCWludCB0YyxpLHgseSxqLGssdixuLHN1bSx1OwoKCWZvcih1PTE7dTw9MTA7dSsrKQoJewoJCXByaW50ZigiVGVzdCAlZDpcbiIsdSk7CgkJbWVtc2V0KHNlZywtMSxzaXplb2Yoc2VnKSk7CgkJbWVtc2V0KGxhenksMCxzaXplb2YobGF6eSkpOwoJCW1lbXNldChhcnIsMCxzaXplb2YoYXJyKSk7CgkKCQlzY2FuZigiJWQlcyVkIiwmbixzdHIsJmspOwoJCQoJCWZvcihpPTA7aTxuO2krKykKCQl7CgkJCWFycltpKzFdID0gYXJyW2ldICsgKHN0cltpXSA9PSAnKSc/LTE6MSk7CgkJLy8JY291dDw8YXJyW2krMV07CgkJfQoJCQoJCWJ1aWxkKDEsMSxuKTsKCQlzdW0gPSBhcnJbbl07CgkJZm9yKGk9MDtpPGs7aSsrKQoJCXsKCQkJY2luPj54OwoJCQkvL2NvdXQ8PGFycltuXTw8ZW5kbDsKCQkJLy9zY2FuZigiJWMlZCVkIiwmY2gsJngsJnkpOwoJCQlpZih4ID09IDApCgkJCXsKCQkJCXggPSBzZWdbMV07CgkJCQlpZih4PDAgfHwgc3VtICE9MCkKCQkJCQlwcmludGYoIk5PXG4iKTsKCQkJCWVsc2UKCQkJCQlwcmludGYoIllFU1xuIik7CgkJCX0KCQkJZWxzZQoJCQl7CgkJCQlpZihzdHJbeC0xXSA9PSAnKScpCgkJCQl7CgkJCQkJdiA9IDI7CgkJCQkJc3RyW3gtMV0gPSAnKCc7CgkJCQl9CgkJCQllbHNlCgkJCQl7CgkJCQkJdiA9LTI7CgkJCQkJc3RyW3gtMV0gPSAnKSc7CgkJCQl9CgkJCQlzdW0rPXY7CgkJCQl1cGRhdGUoMSwxLG4seCxuLHYpOwoJCQl9CgkJCQkKCQkJCgkJCS8qZm9yKHY9MTt2PD0xMDt2KyspCgkJCQlwcmludGYoIiVkXyVkICAiLG1heDFbdl0sbWF4Mlt2XSk7CgkJCWNvdXQ8PGVuZGw7Ki8KCQkJCgkJCQoJCX0KCX0KCXJldHVybiAwOwp9Cg==