#include <bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7;
#define ll long long
int sum[N];
bool vis[N];
queue<int> q;
int k[N];
int main() {
std::ios::sync_with_stdio(false);std::cin.tie(0);std::cout.tie(0);
int n,a,b;
cin>>n>>a>>b;
for(int i=1;i<=n;i++)cin>>k[i];
q.push(a);
while(!q.empty()) {
int x=q.front();
q.pop();
if(x==b) break;
vis[x]=1;
int x1=x+k[x],x2=x-k[x];
if(x1<=n&&!vis[x1])q.push(x1),sum[x1]=sum[x]+1;
if(x2>=1&&!vis[x2])q.push(x2),sum[x2]=sum[x]+1;
}
if(sum[b]==0&&b!=a)cout<<-1;
else cout<<sum[b];
return 0;
}
救