#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a,b;
int k[114514];
int vis[114514];
void dfs(int step,int fl)
{
vis[fl]=step;
int u=fl+k[fl],d=fl-k[fl];
if(u<=n && step+1<vis[u])
{
dfs(step+1,u);
}
if(d>0 && step+1<vis[d])
{
dfs(step+1,d);
}
}
signed main()
{
memset(vis,-1,sizeof(vis));
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>k[i];
}
dfs(0,a);
if(vis[b]!=-1) cout<<vis[b];
else cout<<-1;
}