P1135,64pts
#include <bits/stdc++.h>
using namespace std;
int n,a,b,q[205];
bool vis[205];
int dfs(int i,int num)
{
if (i < 1 || i > n || vis[i]) return -1;
if (i == b) return num;
vis[i] = 1;
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;
memset(vis, false, sizeof(vis));
for (int i = 1;i <= n;i++)
{
cin >> q[i];
}
cout << dfs(a,0);
return 0;
}