using namespace std;
int n,a,b,ans;
int num[201];
bool jock[201];
int dfs(int x,int sum){
if(x==b){
if(ans==-1){
ans=sum;
}else{
ans=min(ans,sum);
}
}
else{
int k=sum+1;
jock[x]=1;
int u=0;
if(x-num[x]>=1&&!jock[x-num[x]]){
dfs(x-num[x],k);
u=1;
}
if(x+num[x]<=n&&!jock[x+num[x]]){
dfs(x+num[x],k);
u=1;
}
if(!u)return 0;
jock[x]=0;
}
}
int main(){
cin>>n>>a>>b;
memset(jock,0,sizeof(jock));
ans=-1;
for(int i=1;i<=n;i++){
cin>>num[i];
}
dfs(a,0);
cout<<ans;
}