#include<bits/stdc++.h>
using namespace std;
int n,a,b;
int k[201];
int sum[201];
void dfs(int f,int step){
// cout<<f<<endl;
if(f==b) sum[b]=min(sum[b],step);
else {
int tf=f+k[f];
if(tf>=1&&tf<=n&&sum[tf]>step){
dfs(tf,step+1);
}
tf=f-k[f];
if(tf>=1&&tf<=n&&sum[tf]>step) dfs(tf,step+1);
}
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++) {
cin>>k[i];
sum[i]=10086;
}
dfs(a,0);
cout<<sum[b];
return 0;
}
/**************************************************************
Problem: 1819
User: liuchengxuan
Language: C++
Result: Time Limit Exceed
****************************************************************/