#include <iostream>
#include <queue>
#include <algorithm>
using namespace std;
const int N=1000000;
int n,a,b,c[N],ans=0;
int vis[N]={-1};
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>c[i];
}
if(a==b)
{
cout<<0;
return 0;
}
vis[a]=0;
queue<int>q;
q.push(a);
while(!q.empty())
{
int p=q.front();q.pop();
if(p==b)break;
if(p+c[p]<=n and vis[p+c[p]]==0)
{
q.push(p+c[p]);
vis[p+c[p]]=vis[p]+1;
ans=1;
}
if(p-c[p]>=1 and vis[p+c[p]]==0)
{
q.push(p-c[p]);
vis[p-c[p]]=vis[p]+1;
ans=1;
}
}
cout<<vis[b];
}