#include<bits/stdc++.h>
#define mp make_pair
#define f first
#define s second
#define int long long
using namespace std;
int n,aa,b,vis[222],a[222];
void bfs(){
queue<pair<int,int> > q;
q.push(mp(aa,0));
vis[aa]=1;
while(!q.empty()){
pair<int,int> fr = q.front();q.pop();
if(fr.f==b){
cout<<fr.s<<endl;
return ;
}
if(fr.f<1||fr.f>n){
continue;
}
int rx = fr.f+a[fr.f],ry = fr.s+1;
if(a[rx]>=1&&a[rx]<=n&&vis[rx]==0){
q.push(mp(rx,ry));vis[rx]=1;
}
rx=fr.f-a[fr.f];
if(a[rx]>=1&&a[rx]<=n&&vis[rx]==0){
q.push(mp(rx,ry));vis[rx]=1;
}
}
}
signed main(){
ios_base::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>aa>>b;for(int i =1;i <= n;i++)cin>>a[i];
bfs();
return 0;
}