#include <bits/stdc++.h>
#define ll long long int
#define inf 1e18
#define iosbase ios_base::sync_with_stdio(false);
#define mp make_pair
#define pb push_back
#define MOD 1000000007
#define sc(n) scanf("%lld" , &n);
#define Max 500005
using namespace std;
ll arr[Max];
ll lazy[Max];
int tree[4*Max];
void build_tree(int node, int a, int b) {
if(a > b) return;
if(a == b) {
tree[node] = arr[a];
return;
}
build_tree(node*2, a, (a+b)/2);
build_tree(node*2+1, 1+(a+b)/2, b);
tree[node] = min(tree[node*2], tree[node*2+1]);
}
void update_tree(int node, int a, int b, int i, int j, int value) {
if(lazy[node] != 0) {
tree[node] += lazy[node];
if(a != b) {
lazy[node*2] += lazy[node];
lazy[node*2+1] += lazy[node];
}
lazy[node] = 0; // Reset it
}
if(a > b || a > j || b < i)
return;
if(a >= i && b <= j) {
tree[node] += value;
if(a != b) {
lazy[node*2] += value;
lazy[node*2+1] += value;
}
return;
}
update_tree(node*2, a, (a+b)/2, i, j, value);
update_tree(1+node*2, 1+(a+b)/2, b, i, j, value);
tree[node] = min(tree[node*2], tree[node*2+1]);
}
int query_tree(int node, int a, int b, int i, int j) {
if(a > b || a > j || b < i) return inf;
if(lazy[node] != 0) {
tree[node] += lazy[node];
if(a != b) {
lazy[node*2] += lazy[node];
lazy[node*2+1] += lazy[node];
}
lazy[node] = 0;
}
if(a >= i && b <= j)
return tree[node];
int q1 = query_tree(node*2, a, (a+b)/2, i, j);
int q2 = query_tree(1+node*2, 1+(a+b)/2, b, i, j);
int res = min(q1, q2);
return res;
}
int main()
{
iosbase
string s="";
cin>>s;
ll size = s.size();
ll open =0 , close = 0;
for(int i=0 ; i<s.size() ; i++){
if(s[i]=='(')open++;
else close++;
arr[i] = open - close;
}
build_tree(1,0,size-1);
ll q;
cin>>q;
while(q--)
{
ll a ,b;
cin>>a>>b;
if(s[a]==s[b]){
if(query_tree(1,0,size-1,size-1,size-1)==0 && query_tree(1,0,size-1,0,size-1)>=0){
cout<<"Yes\n";
}
else{
cout<<"No\n";
}
continue;
}
else if(s[a]=='(' && s[b]==')'){
update_tree(1,0,size-1, a, b-1 , -2);
}
else{
update_tree(1,0,size-1, a, b-1 , +2);
}
if(query_tree(1,0,size-1,a,b-1)>=0 && query_tree(1,0,size-1,size-1,size-1)==0 && query_tree(1,0,size-1,0,size-1)>=0){
cout<<"Yes\n";
}
else{
cout<<"No\n";
}
swap(s[a],s[b]);
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBsb25nIGludAojZGVmaW5lIGluZiAxZTE4CiNkZWZpbmUgaW9zYmFzZSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsKI2RlZmluZSBtcCBtYWtlX3BhaXIKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBNT0QgMTAwMDAwMDAwNwojZGVmaW5lIHNjKG4pIHNjYW5mKCIlbGxkIiAsICZuKTsKI2RlZmluZSBNYXggNTAwMDA1CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgpsbCBhcnJbTWF4XTsKbGwgbGF6eVtNYXhdOwppbnQgdHJlZVs0Kk1heF07Cgp2b2lkIGJ1aWxkX3RyZWUoaW50IG5vZGUsIGludCBhLCBpbnQgYikgewogICAgaWYoYSA+IGIpIHJldHVybjsKCiAgCWlmKGEgPT0gYikgewogICAgCQl0cmVlW25vZGVdID0gYXJyW2FdOwoJCXJldHVybjsKCX0KCglidWlsZF90cmVlKG5vZGUqMiwgYSwgKGErYikvMik7CglidWlsZF90cmVlKG5vZGUqMisxLCAxKyhhK2IpLzIsIGIpOwoKCXRyZWVbbm9kZV0gPSBtaW4odHJlZVtub2RlKjJdLCB0cmVlW25vZGUqMisxXSk7Cn0KCgp2b2lkIHVwZGF0ZV90cmVlKGludCBub2RlLCBpbnQgYSwgaW50IGIsIGludCBpLCBpbnQgaiwgaW50IHZhbHVlKSB7CgoJaWYobGF6eVtub2RlXSAhPSAwKSB7CiAgIAkJdHJlZVtub2RlXSArPSBsYXp5W25vZGVdOwoKCQlpZihhICE9IGIpIHsKCQkJbGF6eVtub2RlKjJdICs9IGxhenlbbm9kZV07CiAgICAJCQlsYXp5W25vZGUqMisxXSArPSBsYXp5W25vZGVdOwoJCX0KCiAgIAkJbGF6eVtub2RlXSA9IDA7IC8vIFJlc2V0IGl0CiAgCX0KCglpZihhID4gYiB8fCBhID4gaiB8fCBiIDwgaSkKCQlyZXR1cm47CgogIAlpZihhID49IGkgJiYgYiA8PSBqKSB7CiAgICAJCXRyZWVbbm9kZV0gKz0gdmFsdWU7CgoJCWlmKGEgIT0gYikgewoJCQlsYXp5W25vZGUqMl0gKz0gdmFsdWU7CgkJCWxhenlbbm9kZSoyKzFdICs9IHZhbHVlOwoJCX0KCiAgICAJCXJldHVybjsKCX0KCgl1cGRhdGVfdHJlZShub2RlKjIsIGEsIChhK2IpLzIsIGksIGosIHZhbHVlKTsKCXVwZGF0ZV90cmVlKDErbm9kZSoyLCAxKyhhK2IpLzIsIGIsIGksIGosIHZhbHVlKTsKCgl0cmVlW25vZGVdID0gbWluKHRyZWVbbm9kZSoyXSwgdHJlZVtub2RlKjIrMV0pOwp9CgppbnQgcXVlcnlfdHJlZShpbnQgbm9kZSwgaW50IGEsIGludCBiLCBpbnQgaSwgaW50IGopIHsKCglpZihhID4gYiB8fCBhID4gaiB8fCBiIDwgaSkgcmV0dXJuIGluZjsKCglpZihsYXp5W25vZGVdICE9IDApIHsKCQl0cmVlW25vZGVdICs9IGxhenlbbm9kZV07CgoJCWlmKGEgIT0gYikgewoJCQlsYXp5W25vZGUqMl0gKz0gbGF6eVtub2RlXTsKCQkJbGF6eVtub2RlKjIrMV0gKz0gbGF6eVtub2RlXTsKCQl9CgoJCWxhenlbbm9kZV0gPSAwOwoJfQoKCWlmKGEgPj0gaSAmJiBiIDw9IGopCgkJcmV0dXJuIHRyZWVbbm9kZV07CgoJaW50IHExID0gcXVlcnlfdHJlZShub2RlKjIsIGEsIChhK2IpLzIsIGksIGopOwoJaW50IHEyID0gcXVlcnlfdHJlZSgxK25vZGUqMiwgMSsoYStiKS8yLCBiLCBpLCBqKTsKCglpbnQgcmVzID0gbWluKHExLCBxMik7CgoJcmV0dXJuIHJlczsKfQoKaW50IG1haW4oKQp7Cglpb3NiYXNlCglzdHJpbmcgcz0iIjsKCWNpbj4+czsKCWxsIHNpemUgPSBzLnNpemUoKTsKCWxsIG9wZW4gPTAgLCBjbG9zZSA9IDA7CgoJZm9yKGludCBpPTAgOyBpPHMuc2l6ZSgpIDsgaSsrKXsKCQlpZihzW2ldPT0nKCcpb3BlbisrOwoJCWVsc2UgY2xvc2UrKzsKCgkJYXJyW2ldID0gb3BlbiAtIGNsb3NlOwoJfQoKICAgIGJ1aWxkX3RyZWUoMSwwLHNpemUtMSk7CgoJbGwgcTsKCWNpbj4+cTsKCgoJd2hpbGUocS0tKQoJewoJCWxsIGEgLGI7CgkJY2luPj5hPj5iOwoKCQlpZihzW2FdPT1zW2JdKXsKCQkJaWYocXVlcnlfdHJlZSgxLDAsc2l6ZS0xLHNpemUtMSxzaXplLTEpPT0wICYmIHF1ZXJ5X3RyZWUoMSwwLHNpemUtMSwwLHNpemUtMSk+PTApewoJCQljb3V0PDwiWWVzXG4iOwoJCQl9CgkJCWVsc2V7CgkJCWNvdXQ8PCJOb1xuIjsKCQkJfQoJCQljb250aW51ZTsKCgoJCX0KCQllbHNlIGlmKHNbYV09PScoJyAmJiBzW2JdPT0nKScpewoJCQl1cGRhdGVfdHJlZSgxLDAsc2l6ZS0xLCBhLCBiLTEgLCAtMik7CgkJfQoJCWVsc2V7CgkJCXVwZGF0ZV90cmVlKDEsMCxzaXplLTEsIGEsIGItMSAsICsyKTsKCQl9CgoJCWlmKHF1ZXJ5X3RyZWUoMSwwLHNpemUtMSxhLGItMSk+PTAgJiYgcXVlcnlfdHJlZSgxLDAsc2l6ZS0xLHNpemUtMSxzaXplLTEpPT0wICYmIHF1ZXJ5X3RyZWUoMSwwLHNpemUtMSwwLHNpemUtMSk+PTApewoKCgkJCWNvdXQ8PCJZZXNcbiI7CgkJfQoJCWVsc2V7CgoJCQljb3V0PDwiTm9cbiI7CgkJfQoJCXN3YXAoc1thXSxzW2JdKTsKCgl9CgoJcmV0dXJuIDA7Cn0=