#include<iostream>
#include<cstring>
#include<cstdio>
#include<queue>
using namespace std;
int n,a,b;
int to[1000],dis[1000];
int ans=-1;
bool wd[1000];
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
cin>>to[i];
queue<int> q;
q.push(a);wd[a]=1;
while(q.size())
{
int x=q.front();
q.pop();
if(x==b)
{
ans=dis[x];
break;
}
if(x+to[x]<=n&&!wd[x+to[x]])
{
dis[x+to[x]]=dis[x]+1;
q.push(x+to[x]);wd[x+to[x]]=1;
}
if(x-to[x]>=1&&!wd[x+to[x]])
{
dis[x-to[x]]=dis[x]+1;
q.push(x-to[x]);wd[x-to[x]]=1;
}
}
cout<<ans<<endl;
return 0;
}