#include<bits/stdc++.h>
using namespace std;
int n,a,b;
int aa[2002];
int cnt[2002];
queue<int> f;
void bfs()
{
f.push(1);
int sum=1;
while(!f.empty())
{
int floor=f.front();
if(floor==b)
{
return;
}
f.pop();
for(int i=1;i<=2;i++)
{
if(i==1)
{
int nfloor=floor+aa[floor];
if(nfloor>=1 && nfloor<=n)
{
cnt[nfloor]=sum+1;
f.push(nfloor);
}
}
else
{
int nfloor=floor-aa[floor];
if(nfloor>=1 && nfloor<=n)
{
cnt[nfloor]=sum+1;
f.push(nfloor);
}
}
}
sum++;
}
return;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>aa[i];
}
bfs();
if(cnt[b]!=0)
{
cout<<cnt[b]<<endl;
}
else
{
cout<<-1<<endl;
}
return 0;
}