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