#include<bits/stdc++.h>
using namespace std;
int a[220][220];
bool b[100000];
int ans[100000];
queue<int>q;
int main()
{
int n,aa,bb;
scanf("%d%d%d",&n,&aa,&bb);
for(int i=1;i<=n;i++)
{
int dd;
scanf("%d",&dd);
if(i+dd<=n)
{
a[i][i+dd]=1;
}
if(i-dd>=1)
{
a[i][i-dd]=1;
}
}
q.push(aa);
b[aa]=1;
ans[aa]=0;
while(!q.empty())
{
int u=q.front();
q.pop();
b[u]=0;
for(int i=1;i<=n;i++)
{
if(a[u][i]==1&&!b[i])
{
b[i]=1;
q.push(i);
ans[i]=ans[u]+1;
if(i==bb)
{
printf("%d",ans[i]);
return 0;
}
}
}
}
printf("-1");
return 0;
}