
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,a,b,k[2005];
bool vis[2005];
void dfs(int L,int cur)
{
if(L==b)
{
cout<<cur;
exit(0);
}
if(k[L]==0)
return ;
if(L+k[L]<=n&&vis[cur+k[L]]==false)
{
dfs(L+k[L],cur+1);
vis[L+k[L]]=true;
}
if(L-k[L]>=1&&vis[cur-k[L]]==false)
{
dfs(L-k[L],cur+1);
vis[L-k[L]]=true;
}
return ;
}
signed main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
cin>>k[i];
dfs(a,0);
cout<<-1;
return 0;
}
求助大佬