#include<bits/stdc++.h>
using namespace std;
int a,b,n,k[201];
int minRes =2147483647;
void dfs(int x,int ans){
if(x==b){
minRes=min(minRes,ans);
return;
}
if(x-k[x]<=0&&x+k[x]>n){;
return;
}
if(x-k[x]<=0&&x+k[x]<=n){
dfs(x+k[x],ans+1);
return;//只能网上
}
if(x-k[x]>=1&&x+k[x]>n){
dfs(x-k[x],ans+1);
return;//只能往下
}
dfs(x+k[x],ans+1);
dfs(x-k[x],ans+1);
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>k[i];
}
dfs(a,0);
if(minRes==2147483647)cout<<-1<<endl;
else cout<<minRes;
return 0;
}