#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int N = 205;
int n, a, b;
int k[N];
int ans = 1e9;
bool vis[N];
void dfs(int x, int cnt) {
if (x == b) { ans = min(ans, cnt); return; }
if (cnt+1 >= ans)return;
if (x<1 || x>n)return;
if (vis[x])return;
if (k[x] == 0)return;
vis[x] = 1;
dfs(x + k[x], cnt+1);
vis[x] = 0;
vis[x] = 1;
dfs(x - k[x], cnt+1);
vis[x] = 0;
}
int main() {
cin >> n >> a >> b;
for (int i = 1; i <= n; i++) {
cin >> k[i];
}
dfs(a, 0);
if (ans == 1e9)cout << "-1" << endl;
else cout << ans << endl;
return 0;
}