#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int MAXN = 300;
int A, B, N;
int K[MAXN];
int x;
int arr[MAXN];
bool st[MAXN];
int res = 1e9;
int ct = 0;
void dfs(int x)
{
if(st[x]) return ;
if(x < 1 || x > N) return ;
if(x == B){
if(ct < res){
res = ct;
}
return ;
}
arr[ct] = K[x];
st[x] = true;
x += K[x];
ct ++;
dfs(x);
x -= arr[ct];
st[x] = false;
ct --;
arr[ct] = K[x];
st[x] = true;
x -= K[x];
ct ++;
dfs(x);
x += arr[ct];
st[x] = false;
ct --;
}
int main()
{
scanf("%d %d %d", &N, &A, &B);
for(int i= 1; i <= N; i++){
scanf("%d", &K[i]);
}
dfs(A);
if(res < 1e9) printf("%d\n", res);
else printf("%d\n", -1);
return 0;
}