#include<iostream>
#include<cstdio>
#include<cmath>
using namespace std;
int n,a,b;
int k[205];
int layer[205];
int count;
void dfs(int cur,int x)
{
if(count<=n)
{
if(layer[cur]!=0)
{
return;
}
else layer[cur]=count;
if(cur+k[cur]<=n)
{
count++;
dfs(cur+k[cur],x);
count--;
}
if(cur-k[cur]>=1)
{
count++;
dfs(cur-k[cur],x);
count--;
}
if(k[cur]==0)return;
return;
}
else return;
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>k[i];
}
dfs(a,b);
for(int i=1;i<=n;i++)
{
if(layer[i]==0)
layer[i]=-1;
}
cout<<layer[b];
return 0;
}