#include<iostream>
#include<cstdio>
#define min(x,y) x<y?x:y
using namespace std;
int num, sta, las;
int sum=2000;
int a[300] = { 0 };
bool b[1000];
void dfs(int x, int ans)
{
if (x == las)
sum = min(ans, sum);
if (ans > sum)
return;
b[x]=1;
if (x + a[x] <= num&&b[x+a[x]]!=1)
{
dfs(x + a[x], ans+1);
}
if (x - a[x] >= 1 && b[x - a[x]] != 1)
{
dfs(x - a[x], ans+1);
}
b[x]=0;
}
int main()
{
scanf("%d%d%d",&num,&sta,&las);
for (int i = 1; i <= num; i++)
scanf("%d",&a[i]);
dfs(sta,0);
if (sum == 2000)
sum = -1;
printf("%d",sum);
return 0;
}