#include <bits/stdc++.h>
#define ll long long
using namespace std;
ll n,a,b,ans=1e18+5,k[205];
bool vis[205];
void dfs(ll cur,ll step)
{
if(step>ans)
{
return ;
}
if(cur==b)
{
ans=min(ans,step);
return ;
}
int next1=cur+k[cur];
int next2=cur-k[cur];
if(next1>=1&&next1<=n&&!vis[next1])
{
vis[next1]=1;
dfs(next1,step+1);
vis[next1]=0;
}
if(next2>=1&&next2<=n&&!vis[next2])
{
vis[next2]=1;
dfs(next2,step+1);
vis[next2]=0;
}
return ;
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
{
cin>>k[i];
}
vis[a]=1;
dfs(a,0);
if(ans==1e18+5)
{
cout<<-1;
return 0;
}
cout<<ans;
return 0;
}
/*
200 162 78
40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 40 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 39 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 38 0 0 0 0 0 0 0 0 0 0 0 0 90 1 1 93 2 5 1 7 4 9 1 11 2 13 1 15 8 17 1 19 2 21 1 23 4 25 1 27 2 29 1 31 16 33 1 35 2 37 1 39 4 41 1 43 2 45 1 47 8 49 1 51 2 53 1 55 4 57 1 59 2 61 1 63 0 0 0 0 0 0 0
*/