#include <bits/stdc++.h>
using namespace std;
int n, a, b;
int c[200], jian[200];
bool dis[200];
int bfs() {
memset(jian, -1, sizeof(jian));
jian[a] = 0;
queue<int >q;
q.push({a});
while (!q.empty()) {
auto weizhi = q.front();
q.pop();
int s = weizhi + c[weizhi];
if (s > 0 && s <= n && jian[s] == -1) {
q.push({s});
jian[s] = jian[weizhi] + 1;
if (s == b) {
return jian[b];
break;
}
}
int x = weizhi - c[weizhi];
if (x > 0 && x <= n && jian[x] == -1) {
q.push({x});
jian[x] = jian[weizhi] + 1;
if (x == b) {
return jian[b];
break;
}
}
}
return -1;
}
int main() {
cin >> n >> a >> b;
for (int i = 1; i <= n; i++)
cin >> c[i];
if (a != b)
cout << bfs();
else if (a == b)
cout << "0";
}