#include<bits/stdc++.h>
using namespace std;
int n,a,b,flr[205],ans=INT_MAX,vst[205];
void dfs(int x,int step){
if(x==b){
ans=min(ans,step);
return;
}
if(step>=ans) return;
int u=x+flr[x],d=x-flr[x];
if(u<=n&&!vst[u]){
vst[u]=true;
dfs(u,step+1);
vst[u]=false;
}
if(d>=1&&!vst[d]){
vst[d]=true;
dfs(d,step+1);
vst[d]=false;
}
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>flr[i];
vst[a]=true;
dfs(a,0);
if(ans==INT_MAX) cout<<-1;
else cout<<ans;
return 0;
}