#include<stdio.h>
#include<algorithm>
#include<string.h>
using namespace std;
int n,a,b,k[40],vis[40];
bool dfs(int m)
{
if(vis[m])
return 0;
vis[m]=1;
if(m==b)
return 1;
if(m+k[m]<=n&&dfs(m+k[m]))
return 1;
if(m-k[m]>=1&&dfs(m-k[m]))
return 1;
return 0;
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
scanf("%d%d%d",&n,&a,&b);
for(int i=1; i<=n; i++)
scanf("%d",&k[i]);
memset(vis,0,sizeof(vis));
int flag=dfs(a);
if(flag)
printf("YES\n");
else
printf("NO\n");
}
return 0;
}