P1135
#include <bits/stdc++.h>
using namespace std;
int n,a,b,q[205],vis[205] = {-1};
int dfs(int i,int num)
{
if (i < 1 || i > n || vis[i] <= num) return -1;
if (i == b) return num;
vis[i] = num;
int up = dfs(i + q[i], num + 1);
int down = dfs(i - q[i], num + 1);
if (up == -1) return down;
if (down == -1) return up;
return min(up, down);
}
int main()
{
cin >> n >> a >> b;
for (int i = 1;i <= n;i++)
{
cin >> q[i];
}
cout << dfs(a,0);
return 0;
}