#include<bits/stdc++.h>
using namespace std;
int n,s,e,a[201],dis[201];
bool vis[201];
void bfs(int st){
vis[st]=1;
queue<int>q;
q.push(st);
while (q.size()){
int cur=q.front();
q.pop();
if (cur-a[cur]>0){
vis[cur-a[cur]]=1;
dis[cur-a[cur]]=dis[cur]+1;
q.push(cur-a[cur]);
}
if (cur+a[cur]<=n){
vis[cur+a[cur]]=1;
dis[cur+a[cur]]=dis[cur]+1;
q.push(cur+a[cur]);
}
}
}
int main(){
cin>>n>>s>>e;
if (s==e){
cout<<'0';
return 0;
}
for (int i=1;i<=n;i++) cin>>a[i];
bfs(s);
if (dis[e]==0) cout<<'-1';
else cout<<dis[e];
}