#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=1e5+7;
const int INF=1e9;
int sum[maxn<<2],val[maxn];
char s[maxn];
int n,m;
void push_up(int o)
{
sum[o]=min(sum[o<<1],sum[o<<1|1]);
}
void build(int o,int L,int R)
{
if(L==R)
{
sum[o]=val[L];
return;
}
int mid = (L+R)>>1;
build(o<<1,L,mid);
build(o<<1|1,mid+1,R);
push_up(o);
}
int query(int ql,int qr,int o,int L,int R)
{
if(ql<=L && qr>=R)
return sum[o];
int ans = INF;
int mid = (L+R)>>1;
if(ql<=mid)
ans = min(ans,query(ql,qr,o<<1,L,mid));
if(qr>mid)
ans = min(query(ql,qr,o<<1|1,mid+1,R),ans);
return ans;
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
scanf("%s",s+1);
val[0]=0;
for(int i=1;i<=n;i++)
{
if(s[i]=='(')
val[i]=val[i-1]+1;
else if(s[i]==')')
val[i]=val[i-1]-1;
}
build(1,1,n);
while(m--)
{
int a,b;
scanf("%d%d",&a,&b);
if(a>b) swap(a,b);
if(s[a]==s[b])
{
printf("Yes\n");
}
else if(s[a]==')'&&s[b]=='(')
{
printf("Yes\n");
}
else if(s[a]=='('&&s[b]==')')
{
int res=query(a,b-1,1,1,n);
if(res<2)
printf("No\n");
else
printf("Yes\n");
}
}
}
return 0;
}
#include <iostream>
#include <cstdio>
#include <algorithm>
using namespace std;
const int maxn=1e5+7;
const int INF=1e9;
int val[maxn];
char s[maxn];
int n,m;
int dp[maxn][20];
int mm[maxn];
void initRMQ(int n, int b[])
{
mm[0] = -1;
for(int i = 1; i <= n; i++)
{
mm[i] = ((i & (i - 1)) == 0) ? mm[i - 1] + 1 : mm[i - 1];
dp[i][0] = b[i];
}
for(int j = 1; j <= mm[n]; j++)
for(int i = 1; i + (1 << j) - 1 <= n; i++)
dp[i][j] = min(dp[i][j - 1], dp[i + (1 << (j - 1))][j - 1]);
}
int rmq(int x, int y)
{
int k = mm[y - x + 1];
return min(dp[x][k], dp[y - (1 << k) + 1][k]);
}
int main()
{
while(~scanf("%d%d",&n,&m))
{
scanf("%s",s+1);
val[0]=0;
for(int i=1; i<=n; i++)
{
if(s[i]=='(')
val[i]=val[i-1]+1;
else if(s[i]==')')
val[i]=val[i-1]-1;
}
initRMQ(n,val);
while(m--)
{
int a,b;
scanf("%d%d",&a,&b);
if(a>b) swap(a,b);
if(s[a]==s[b])
{
printf("Yes\n");
}
else if(s[a]==')'&&s[b]=='(')
{
printf("Yes\n");
}
else if(s[a]=='('&&s[b]==')')
{
int res=rmq(a,b-1);
if(res<2)
printf("No\n");
else
printf("Yes\n");
}
}
}
return 0;
}