#include <iostream>
using namespace std;
int ans=0xfffff,n,a,b,flr[200+1];
void dfs(int high,int times){
if (high==b){
ans=min(ans,times);
return;
}
if (high+flr[high-1]<=n){
dfs(high+flr[high-1],times+1);
}
if (high-flr[high-1]>0){
dfs(high-flr[high-1],times+1);
}
return;
}
int main()
{
cin>>n>>a>>b;
for (int i=0;i<n;i++){
cin>>flr[i];
}
dfs(a,0);
cout<<ans;
if (ans==0xfffff){
cout<<-1;
}
return 0;
}