#include<bits/stdc++.h>
using namespace std;
int n,x,y;
int a[205],vis[205];
struct no
{
int id,s;
}w,ss;
queue<no> q;
int f=0;
void ind(int id,int s)
{
ss.id=id;
ss.s=s;
q.push(ss);
vis[id]=1;
while(!q.empty())
{
ss=q.front();
if(ss.id==y)
{
cout<<ss.s<<endl;
f=1;
return;
}
q.pop();
int t=ss.id+a[ss.id];
if(t<=n&&vis[t]==0)
{
w.id=t;
w.s=ss.s+1;
vis[t]=1;
q.push(w);
}
t=ss.id-a[ss.id];
if(t<=n&&vis[t]==0)
{
w.id=t;
w.s=ss.s+1;
vis[t]=1;
q.push(w);
}
}
}
int main()
{
cin>>n>>x>>y;
for(int i=1;i<=n;i++)
{
cin>>a[i];
}
if(x==y)
{
cout<<"0"<<endl;
f=1;
}
ind(x,0);
if(f==0)
{
cout<<-1<<endl;
}
return 0;
}