#include<bits/stdc++.h>
using namespace std;
int k[205],vis[205];
int n,a,b;
int bfs(int a){
queue<int>q;
q.push(a);
vis[a]=1;
while(q.size()){
int x=q.front();
q.pop();
int x1=x-k[x],x2=x+k[x];
if(x1>0){
if(vis[x1]==0)vis[x1]=vis[x]+1;
else vis[x1]=min(vis[x]+1,vis[x1]);
q.push(x1);
}
if(x2<=n){
if(vis[x2]==0)vis[x2]=vis[x]+1;
else vis[x2]=min(vis[x]+1,vis[x2]);
q.push(x2);
}
}
return vis[b]-1;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>k[i];
}
cout<<bfs(a);
return 0;
}