#include <bits/stdc++.h>
using namespace std;
int n, a, b;
struct room{
int d, pos, dis;
bool check(){
return pos >= 0 && pos < n;
}
}c[200], t, now;
queue <room>q;
int main(){
cin >> n >> a >> b;
a--;
b--;
for(int i = 0; i < n; i++){
cin >> c[i].d;
c[i].pos = i;
c[i].dis = -1;
}
c[a].dis = 0;
q.push(c[a]);
while(!q.empty()){
now = q.front();
q.pop();
t = now;
t.pos = now.pos + now.d;
if(t.check()){
c[t.pos].dis = now.dis + 1;
q.push(c[t.pos]);
}
t.pos = now.pos - now.d;
if(t.check()){
c[t.pos].dis = now.dis + 1;
q.push(c[t.pos]);
}
}
cout << c[b].dis << endl;
return 0;
}