#include<bits/stdc++.h>
using namespace std;
bool b[210];
int k[210];
int sum=999;
int n,A,B;
int p=0,r,s;
void dfs(int);
int main()
{
memset(b,0,sizeof(b));
cin>>n>>A>>B;
for(int i=1;i<=n;i++){
scanf("%d",&k[i]);
}
dfs(A);
if(sum==999) cout<<"-1";
else cout<<sum;
return 0;
}
void dfs(int x){
b[x]=1;
if(x==B) sum=min(sum,p);
else{
if(x+k[x]>=1&&x+k[x]<=n&&(!b[x+k[x]])){
++p;
dfs(x+k[x]);
--p;
}
if(x-k[x]>=1&&x-k[x]<=n&&(!b[x-k[x]])){
++p;
dfs(x-k[x]);
--p;
}
}
}