#include <iostream>
using namespace std;
int n;
int k[200];
int b[400];
void print(int d)
{
int count = 1;
d = b[d];
while (d != 0)
{
count++;
d = b[d];
}
cout<<count;
}
void bfs(int A,int B)
{
int a[400] = {A};
bool flag[400];
int head = 0,tail = 1;
int t[2] = {1,-1};
do{
for(int i=0;i<2;i++){
if(a[head]+k[a[head]]*t[i]>0 && a[head]+k[a[head]]*t[i]<=n && !flag[a[head]]){
flag[a[head]] = 1;
a[tail] = a[head]+k[a[head]]*t[i];
b[tail] = head;
tail++;
if(a[head]+k[a[head]]*t[i] == B){
head = tail;
print(tail-1);
return ;
}
}
}
head++;
}while(head<tail);
cout<<-1;
}
int main()
{
int A,B;
cin>>n>>A>>B;
if (A == B)
{
cout<<0;
return 0;
}
for(int i=1;i<=n;i++){
cin>>k[i];
}
bfs(A,B);
return 0;
}