#include <bits/stdc++.h>
using namespace std;
int A,B,N;
int main()
{
cin >> N >> A >> B;
int a[N+1];
for(int i=1;i<=N;i++)
cin >> a[i];
int ans[N+1];
queue<int>Q;
ans[A]=0;
Q.push(A);
while (!Q.empty())
{
int n=Q.front();
int d=ans[n];
Q.pop();
if(n+a[n]>=1&&n+a[n]<=N)
{
ans[n+a[n]]=d+1;
if(n+a[n]==B)
{
printf("%d",d+1);
return 0;
}
Q.push(n+a[n]);
}
if(n-a[n]>=1&&n-a[n]<=N)
{
ans[n-a[n]]=d+1;
if(n-a[n]==B)
{
printf("%d",d+1);
return 0;
}
Q.push(n-a[n]);
}
}
cout << "-1";
}