#include<bits/stdc++.h>
using namespace std;
int N,A,B;
int K[205];
int sum[205];
void bfs(int x){
int temp=A;
queue <int>qq;
qq.push(temp);
while(!qq.empty()){
int head=qq.front();
qq.pop();
int d=sum[head];
int u1=head+K[head];
int u2=head-K[head];
if((u1<1||u1>N||sum[u1]!=-1)&&(u2<1||u2>N||sum[u2]!=-1))continue;
if(u1<1||u1>N||sum[u1]!=-1){
temp=u2;
sum[u2]=d+1;
qq.push(temp);
}
if(u2<1||u2>N||sum[u2]!=-1){
temp=u1;
sum[u1]=d+1;
qq.push(temp);
}
}
}
int main(){
memset(sum,-1,sizeof(sum));
cin>>N>>A>>B;
for(int i=1;i<=N;i++){
cin>>K[i];
}
sum[A]=0;
bfs(A);
cout<<sum[B];
return 0;
}