#include<bits/stdc++.h>
using namespace std;
short n,a,b,m[500],now,ans=0,minn=1145;
void dfs(int k){
if(k==b){
minn=min(ans,minn);
return;
}
if(k<1||k>n){
return;
}
for(int i=0;i<=1;i++){
if(i==0){
ans++;
dfs(k+m[k]);
ans--;
}
else{
ans++;
dfs(k-m[k]);
ans--;
}
}
return;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>m[i];
}
dfs(a);
if(minn==1145){
cout<<-1;
return 0;
}
cout<<minn;
return 0;
}