#include<bits/stdc++.h>
using namespace std;
int n,a,b,k[200];
int cnt=999;
bool mark[200];
void dfs(int d,int floor){
if(floor>n||floor<1){
return;
}
if(mark[floor]==1){
return;
}
if(floor==b){
if(d-1<cnt){
cnt=d-1;
}
return;
}
mark[floor]=1;
dfs(d+1,floor+k[floor]);
dfs(d+1,floor-k[floor]);
mark[floor]=0;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>k[i];
}
dfs(1,a);
if(cnt==999){
cout<<"-1";
return 0;
}
cout<<cnt;
return 0;
}