#include<bits/stdc++.h>
using namespace std;
vector<int> a,v; int n;
void f(int nx)
{
queue<vector<int>> q;
q.push({nx,0});
while(q.size())
{
vector<int> p=q.front();
q.pop();
int p0=p[0],p1=p[1];
if(v[p0]<p1) continue;
v[p0]=min(p1,v[p0]);
if(p0-a[p0]>=0)
q.push({p0-a[p0],p1+1});
if(p0+a[p0]<n)
q.push({p0+a[p0],p1+1});
}
}
int main()
{
ios::sync_with_stdio(false); cin.tie(0);
int na,nb; cin>>n>>na>>nb;
na--; nb--;
a.resize(n); v.resize(n);
for(int &x:v) x=INT_MAX;
for(int &x:a) cin>>x;
f(na);
cout<<(v[nb]==INT_MAX ? -1:v[nb]);
return 0;
}