#include<cstdio>
#include<iostream>
using namespace std;
int n,a,b,now;
int dx;
int ans= 0x3F3F3F3F;
int k[1001];
bool vis[1001];
void dfs(int x,int y) {
if(x==b) {
ans=min(ans,y);
vis[x]=0;
return ;
}
if(x>ans) {
vis[x]=0;
return ;
}
vis[x]=1;
if(x+k[x]<=n&&!vis[x+k[x]]) dfs(x+k[x],y+1);
if(x-k[x]>=1&&!vis[x-k[x]]) dfs(x-k[x],y+1);
vis[x]=0;
}
int main() {
cin>>n>>a>>b;
for(int i=1; i<=n; i++)
cin>>k[i];
vis[a]=1;
dfs(a,0);
if(ans!= 0x3F3F3F3F) cout<<ans;
else cout<<-1;
return 0;
}