#include<bits/stdc++.h>
using namespace std;
long long a1[205],b1[205],a,b,n,minn=INT_MAX;
void dfs(long long k,long long summ)
{
if(summ>minn)
{
return;
}
if(k==b)
{
minn=min(summ,minn);
return;
}
if(k+a1[k]<=n&&b1[k+a1[k]]==0)
{
b1[k+a1[k]]=1;
dfs(k+a1[k],summ+1);
b1[k+a1[k]]=0;
}
if(k-a1[k]>=1&&b1[k-a1[k]]==0)
{
b1[k-a1[k]]=1;
dfs(k-a1[k],summ+1);
b1[k-a1[k]]=0;
}
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++)cin>>a1[i];
b1[a]=1;
dfs(a,0);
b1[a]=0;
if(minn==INT_MAX)cout<<"-1";
else cout<<minn;
return 0;
}