#include<bits/stdc++.h>
#define int long long
#define endl '\n'
#define N 500000
int b, n, a;
int k[N];
bool v[N] = {false};
signed main(){
std::ios::sync_with_stdio(false);
cin.tie(0),cout.tie(0);
cin >> b >> n >> a;
for (int i = 1; i <= b; i++) {
cin >> k[i];
}
queue<int> qf;
queue<int> qs;
qf.push(n);
qs.push(0);
v[n] = true;
int r = 0;
while (!qf.empty()) {
int f = qf.front();
int s = qs.front();
qf.pop();
qs.pop();
if (f == a) {
r = s;
break;
}
int u = f + k[f];
if (u <= b && !v[u]) {
v[u] = true;
qf.push(u);
qs.push(s + 1);
}
int d = f - k[f];
if (d >= 1 && !v[d]) {
v[d] = true;
qf.push(d);
qs.push(s + 1);
}
}
cout << r;
return 0;
}