#include<bits/stdc++.h>
using namespace std;
int sx[3][1001],ans=999,n,a,b;
bool m[1001]={0};
int bfs(int x,int r){
bool q=0;
int l=r;
if(r>999){
cout<<-1<<endl;
exit(0);
}
if(x<1||x>n)
return 2;
if(x==b){
ans=min(r,ans);
}
if(x+sx[1][x]==b&&m[x+sx[1][x]]==0||x+sx[2][x]==b&&m[x+sx[2][x]]==0){
ans=min(r+1,ans);
return 1;
}
for(int i=1;i<=2;i++){
if((x+sx[i][x])<=n&&(x+sx[i][x])>0&&m[x+sx[i][x]]==0){
m[x+sx[i][x]]=1;
int w;
w=bfs(x+sx[i][x],l+1);
if(w==1){
q=1;
}
m[x+sx[i][x]]=0;
}
}
if(q){
return 1;
}
return 2;
}
int main(){
int x;
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>sx[1][i];
sx[2][i]=0-sx[1][i];
}
int w;
w=bfs(a,0);
if(w==2){
cout<<-1<<endl;
}
else{
cout<<ans<<endl;
}
return 0;
}