#include<bits/stdc++.h>
using namespace std;
int n,a,b,arr[205],step = 0x3f3f3f3f;
bool vis[205];
void dfs(int dep,int fl)
{
if(dep > step || fl < 1 || fl > n || vis[fl]) return;
if(fl == b)
{
step = min(dep,step);
return ;
}
if(arr[fl] == 0 && fl != b) return;
vis[fl] = 1;
dfs(dep + 1,fl + arr[fl]);
dfs(dep + 1,fl - arr[fl]);
vis[fl] = 0;
}
int main()
{
cin >> n >> a >> b;
for(int i = 1;i<=n;i++)
cin >> arr[i];
dfs(1,a);
if(step == 0x3f3f3f3f) printf("-1");
else printf("%d",step - 1);
return 0;
}