#include<iostream>
#include<algorithm>
using namespace std;
const int M=205;
int N,A,B,K[M],sum=1000000;
bool gg=false,st[M];
void dfs(int X,int cnt){
if(cnt>=sum) return;
if(X==B&&cnt<sum){
sum=cnt;
gg=true;
return;
}
st[X]=true;
if(X+K[X]<=N&&!st[X+K[X]]){
st[X+K[X]]=true;
dfs(X+K[X],cnt+1);
}
if(X-K[X]>=1&&!st[X-K[X]]){
st[X-K[X]]=true;
dfs(X-K[X],cnt+1);
}
}
int main(){
cin>>N>>A>>B;
for(int i=1;i<=N;i++){
cin>>K[i];
}
dfs(A,0);
if(gg==false){
cout<<"-1"<<endl;
}
else cout<<sum<<endl;
return 0;
}