#include<bits/stdc++.h>
using namespace std;
int N,A,B;
int a[1000000];
int b[1000000];
bool pd;
void dfs(int i,int step)
{
pd=false;
b[i]=1;
if(i==B)
{
cout<<step;
exit(0);
}
int x=i+a[i];
int y=i-a[i];
if(x>0&&x<=N&&b[x]==0)
{
b[x]=1;
dfs(x,step+1);
pd=true;
}
if(y>0&&y<=N&&b[y]==0)
{
b[y]=1;
dfs(y,step+1);
pd=true;
}
if(!pd)
{
cout<<-1;
exit(0);
}
}
int main()
{
cin>>N>>A>>B;
for(int i=1;i<=N;i++)
cin>>a[i];
dfs(A,0);
cout<<-1;
return 0;
}