#include <bits/stdc++.h>
using namespace std;
int n,a,b,ans,flag;
int vis[10001];
int k[1001];
queue<pair<int,int> > q;
int f(){
int d=q.front().first;
int floor=q.front().second;
if(floor==b) return 1;
q.pop();
for(int i=-1;i<=1;i+=2){
int now=floor+k[floor]*i;
if(now>=1&&now<=n&&vis[now]==0){
q.push(make_pair(d+1,now));
}
}
return 0;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>k[i];
}
q.push(make_pair(0,a));
vis[a]=-1;
while(!q.empty()){
if(f()){
cout<<q.front().first;
return 0;
}
}
cout<<-1;
return 0;
}