#include <bits/stdc++.h>
using namespace std;
const int N=210;
int g[N],cnt[N],vis[N];
int n,s,f;
int d[]={1,-1};
int q[N];
int bfs(){
memset(cnt,-1,sizeof cnt);
memset(vis,-1,sizeof vis);
q[0]=s,q[1]=f;
cnt[s]=0,cnt[f]=0;
vis[s]=1,vis[f]=2;
int hh=0,tt=1,time;
while(hh<=tt){
int t=q[hh++];
for(int i=0;i<2;i++){
int a=t+d[i]*g[t];
if(a<1 || a>n) continue;
if(vis[t]+vis[a]==3){
time=cnt[t]+cnt[a]+1;
return time;
}
if(cnt[a]>=0) continue;
q[++tt]=a;
cnt[a]=cnt[t]+1;
if(vis[a]==-1) vis[a]=vis[t];
}
}
return -1;
}
int main(){
scanf("%d %d %d",&n,&s,&f);
for(int i=1;i<=n;i++){
scanf("%d",&g[i]);
}
int res=bfs();
cout<<res<<endl;
return 0;
}