#include<cstdio>
int e[210][210];
void floyd(int n)
{
for(int k=1;k<=n;k++)
for(int i=1;i<=n;i++)
if(e[i][k]!=999999)
for(int j=1;j<=n;j++)
if(e[i][j]>e[i][k]+e[k][j])
e[i][j]=e[i][k]+e[k][j];
}
int main()
{
int n,a,b,x;
while(scanf("%d",&n)!=EOF)
{
if(n==0) break;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
if(i==j) e[i][j]=0;
else e[i][j]=999999;
}
scanf("%d%d",&a,&b);
for(int i=1;i<=n;i++)
{
scanf("%d",&x);
if(i-x>0) e[i][i-x]=1;
if(i+x<=n) e[i][i+x]=1;
}
floyd(n);
if(e[a][b]!=999999) printf("%d\n",e[a][b]);
else printf("-1\n");
}
return 0;
}