#include<iostream>
using namespace std;
int n,x,y,vis[101]={},space[101]={},ans=0x7fffffff,toward[2]={-1,1},nn=0;
void dfs(int floor,int step){
if(floor==y){
ans=min(ans,step);
return;
}
for(int i=0;i<2;i++){
nn=floor+toward[i]*space[floor];
if(nn>=1&&nn<=n&&vis[nn]==0){
vis[nn]=1;
dfs(nn,step+1);
vis[nn]=0;
}
}
}
int main(){
cin>>n>>x>>y;
for(int i=1;i<=n;i++){
cin>>space[i];
}
vis[x]=1;
dfs(x,0);
if(ans==0x7fffffff){
cout<<-1;
}else{
cout<<ans;
}
return 0;
}
各位大佬帮帮忙吧