#include<bits/stdc++.h>
using namespace std;
int n,minn=1e9;
int start,ans=0,en;
int a[205],b[1000];
void dfs(int x){
if(x==en){
minn=min(minn,ans);
return ;
}
else{
if(x+a[x]<=n && b[x+a[x]]==0){
ans++;
b[x]++;
dfs(x+a[x]);
b[x]--;
ans--;
}
if(x-a[x]>=1 && b[x-a[x]]==0){
ans++;
b[x]++;
dfs(x-a[x]);
b[x]--;
ans--;
}
}
}
int main(){
cin>>n>>start>>en;
for(int i=1;i<=n;i++) cin>>a[i];
dfs(start);
if(minn==1e9){
cout<<-1;
return 0;
}
cout<<minn;
return 0;
}