#include<bits/stdc++.h>
using namespace std;
int n,a,b;
struct no{
int num,id,st;
}k[1005];
bool d[1005];
queue<no> Q;
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
scanf("%d",&k[i].num);
k[i].id=i;
}
no t;
t.id=a;t.num=k[a].num;t.st=0;
Q.push(t);
while(!Q.empty()){
no u=Q.front();
if(u.id==b){
printf("%d",u.st);
break;
}
else {
if(u.id+u.num<=n&&u.id+u.num>=1){
t.id=u.id+u.num;
t.st=u.st+1;
t.num=k[t.id].num;
Q.push(t);
}
if(u.id-u.num<=n&&u.id-u.num>=1){
t.id=u.id-u.num;
t.st=u.st+1;
t.num=k[t.id].num;
Q.push(t);
}
}
Q.pop();
}
if(Q.empty()) printf("%d",-1);
return 0;
}