#include<bits/stdc++.h>
using namespace std;
#define M 200+10
int n,a,b;
int k[M];
bool f[M];
int ans=0x7f7f7f7f;
int read()
{
int x=0,f=1;char ch=getchar();
while(ch<'0'||ch>'9'){if(ch=='-')f=-1;ch=getchar();}
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();}
return x*f;
}
void dfs(int x,int t)
{
if(x==b)
{
ans=min(t,ans);
}
int x1=x+k[x];
if(x1>=1 && x1<=n && !f[x1])
{
f[x1]=1;
dfs(x1,t+1);
}
int x2=x-k[x];
if(x2>=1 && x2<=n && !f[x2])
{
f[x2]=1;
dfs(x2,t+1);
}
}
int main()
{
n=read(),a=read(),b=read();
for(int i=1;i<=n;i++) k[i]=read();
dfs(a,0);
if(!f[b]) printf("-1\n");
else printf("%d\n",ans);
return 0;
}