#include<cstdio>
#include<iostream>
using namespace std;
int n,a,b,ans=0x7f,t[205];
bool f[205];
void dfs(int nnn,int mmm){
if(nnn==b)ans=min(ans,mmm);
if(mmm>ans)return;
f[nnn]=1;
if(nnn+t[nnn]<=n&&f[nnn+t[nnn]]==0) dfs(nnn+t[nnn],mmm+1);
if(nnn-t[nnn]>=1&&f[nnn-t[nnn]]==0) dfs(nnn-t[nnn],mmm+1);
f[nnn]=0;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)cin>>t[i];
f[a]=1;
dfs(a,0);
if(ans!=0x7f)cout<<ans;
else cout<<-1;
return 0;
}
卡在90分动不了了……