#include<bits/stdc++.h>
using namespace std;
int N,a,b,ans,K[210];
bool v[210];
queue<int> que;
int bfs(int x,int y){
que.push(x);
que.push(1);
v[x]=1;
while(1){
int now=que.front();
que.pop();
v[now]=1;
int num=que.front();
que.pop();
if(K[now]==0&&que.empty())return 0;
if(now==y)return num;
if(now+K[now]<=N&&!v[now+K[now]]){
que.push(now+K[now]);
que.push(num+1);
}
if(now-K[now]>=1&&!v[now-K[now]]){
que.push(now-K[now]);
que.push(num+1);
}
}
}
int main(){
cin>>N>>a>>b;
for(int i=1;i<=N;i++){
cin>>K[i];
}
ans=bfs(a,b);
cout<<ans-1;
return 0;
}