#include<iostream>
#include<algorithm>
#include<queue>
using namespace std;
int n,a,b;
int k[300];
int dis[300];
int f[300]={0};
const int N=500;
queue<int>q;
int main()
{
cin>>n>>a>>b;
fill(dis+1,dis+n+1,N);
dis[a]=0;
for(int i=1;i<=n;i++)
cin>>k[i];
q.push(a);
while(!q.empty())
{
int t=q.front();
if(t==b)
break;
q.pop();
int next=k[t]+t;
if(next>=1&&next<=n)
{
if(f[next]==0){
dis[next]=dis[t]+1;
f[next]=1;
q.push(next);}
}
next=t-k[t];
if(next>=1&&next<=n)
{
if(f[next]==0){
dis[next]=dis[t]+1;
f[next]=1;
q.push(next);}
}
}
cout<<dis[b];
}