#include<bits/stdc++.h>
#define LL long long
#define DB double
using namespace std;
const int N = 2e2+5;
int n,st,ed,ans = INT_MAX;
int a[N],dis[N];
bool v[N];
queue<int> q;
void bfs(){
q.push(st);
v[1] = 1;
while(!q.empty()){
int x = q.front();
if(x == ed){
ans = dis[x];
return ;
}
q.pop();
int nxt1 = x+a[x],nxt2 = x-a[x];
if(nxt1 <= n && !v[nxt1]){
q.push(nxt1);
v[nxt1] = 1;
dis[nxt1] = dis[x]+1;
}
if(0 < nxt2 && !v[nxt2]){
q.push(nxt2);
v[nxt2] = 1;
dis[nxt2] = dis[x]+1;
}
}
ans = -1;
}
int main(){
cin>>n>>st>>ed;
for(int i=1;i<=n;i++){
cin>>a[i];
}
bfs();
cout<<ans;
return 0;
}