#include<iostream>
#include<algorithm>
#include<cstdio>
#include<queue>
#include<stack>
#include<math.h>
using namespace std;
int main(void)
{
//freopen("dd1.txt","r",stdin);
//freopen("dd2.txt","w",stdout);
int n,a,b;
scanf("%d",&n);
scanf("%d",&a);
scanf("%d",&b);
int s[n];
bool fs[n];
for(int i=0;i<=n;i++)
{
scanf("%d",&s[i]);
fs[i]=0;
}
queue<int>s1;
queue<int>s2;
s1.push(a);
s2.push(0);
while(!s1.empty())
{
int nx=s1.front();
int ny=s2.front();
s1.pop();
s2.pop();
fs[nx-1]=1;
if(nx==b)
{
printf("%d",ny);
return 0;
}
if(nx+s[nx-1]<=n&&fs[nx+s[nx-1]]==0)
{
s1.push(nx+s[nx-1]);
s2.push(ny+1);
}
if(nx-s[nx-1]>=1&&fs[nx-s[nx-1]]==0)
{
s1.push(nx-s[nx-1]);
s2.push(ny+1);
}
}
printf("-1");
return 0;
}
50分tle求助