#include <cstdio>
#define int unsigned long long
int a[250], A, B, n, min;
bool vis[250], viss;
void dfs(int x, int i) {
vis[x] = true;
if (x == B) {
if (viss == false)
min = i, viss = true;
else min = min > i ? i : min;
}
if (x + a[x] <= n && (!vis[x + a[x]])) {
dfs(x + a[x], i + 1);
} else if (x - a[x] > 0 && (!vis[x - a[x]])) {
dfs(x - a[x], i + 1);
}
}
signed main() {
scanf("%d%d%d", &n, &A, &B);
for (int i = 1; i <= n; i++) {
scanf("%d", &a[i]);
}
dfs(A, 0);
if (viss) printf("%d\n", min);
else puts("-1");
return 0;
} ```