#include<iostream>
#include<queue>
#include<string.h>
using namespace std;
int main()
{
int N,A,B;
cin>>N>>A>>B;
int k[1001];
for(int i=1;i<=N;i++)
{
cin>>k[i];
}
queue<int> q;
int a[101];
memset(a,-1,sizeof(a));
a[A]=0;
int tmp=A;
q.push(tmp);
while(!q.empty())
{
int u=q.front();
q.pop();
if((u+k[u]>N)&&(u-k[u]<1)) continue;
if((u+k[u]>N)&&(u-k[u]>=0)&&(a[u-k[u]]==-1))
{
tmp=u-k[u];
q.push(tmp);
a[tmp]=a[u]+1;
}
if((u+k[u]<=N)&&(u-k[u]<1)&&(a[u+k[u]]==-1))
{
tmp=u+k[u];
q.push(tmp);
a[tmp]=a[u]+1;
}
if((u+k[u]<=N)&&(u-k[u]>0)&&(u-k[u]==-1)&&(u+k[u]==-1))
{
tmp=u-k[u];
q.push(tmp);
a[tmp]=a[u]+1;
tmp=u+k[u];
q.push(tmp);
a[tmp]=a[u]+1;
}
}
cout<<a[B];
return 0;
}