#include<bits/stdc++.h>
using namespace std;
int a,b,n,_floor[210],ans=INT_MAX;
void dfs(int fl,int cishu){
if(fl==b){
ans=min(ans,cishu);
return ;
}
if(!(fl-_floor[fl]<1)){
dfs(fl-_floor[fl],cishu+1);
}
if(!(fl+_floor[fl]>n)){
dfs(fl+_floor[fl],cishu+1);
}
return ;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>_floor[i];
dfs(a,0);
if(ans==INT_MAX) cout<<"-1";
else cout<<ans;
return 0;
}