#include <bits/stdc++.h>
using namespace std;
int t[201];
bool vis[201];
int cnt,minc=0x7ffffff;
int a,b,n;
void dfs(int cur,int cnt)
{
if (cur<1||cur>n||vis[cur])
{
return;
}
if (cur==b)
{
if (cnt<minc)
{
minc=cnt;
}
}
if (cnt>minc)
{
return;
}
vis[cur]=true;
dfs(cur+t[cur],cnt+1);
dfs(cur-t[cur],cnt+1);
vis[cur]=false;
}
int main()
{
memset(vis,false,sizeof(vis));
scanf("%d %d",&n,&a,&b);
for (int i=1;i<=n;i++)
{
scanf("%d",&t[i]);
}
dfs(a,0);
if (minc==0x7ffffff)
{
printf("-1\n");
return 0;
}
printf("%d\n",minc);
return 0;
}