#include <iostream>
#include <cmath>
#include <algorithm>
using namespace std;
int map[205], n, a, b, k1, k2, sl[205], xl[205], hxs[205] = { 0 }, hxx[205] = {0};
int DFS(int x)
{
if (x == b)
{
return 0;
}
k1 = x + map[x];
k2 = x - map[x];
if (k1 <= n && hxs[x] == 0)
{
hxs[x] = 1;
sl[x] = DFS(k1);
}
if (k2 >= 1 && hxx[x] == 0)
{
hxx[x] = 1;
xl[x] = DFS(k2);
}
return min(sl[x], xl[x]) + 1;
}
int main()
{
int ans;
cin >> n >> a >> b;
for (int i = 1; i <= n; i++)
{
cin >> map[i];
sl[i] = 11111;
xl[i] = 11111;
}
ans = DFS(a);
if (ans >= 11111)ans = -1;
cout << ans << endl;
return 0;
}