#include<bits/stdc++.h>
using namespace std;
int n,b,a,c[201],f,ans;
queue<int>q;
int main(){
cin>>n>>a>>b;
f=n;
for(int i=1;i<=n;i++)cin>>c[i];
if(a==b){
cout<<0;
return 0;
}
q.push({a});
while(--f){
ans++;
for(int i=q.size();i>0;i--){
int tx=q.front()+c[q.front()],cx=q.front()-c[q.front()];
if(tx==b||cx==b){
cout<<ans;
return 0;
}
if(tx>=1&&tx<=n)q.push({tx});
if(cx>=1&&cx<=n)q.push({cx});
q.pop();
}
}
cout<<-1;
return 0;
}
/**************************************************************
Problem: 1819
User: chenshuocs
Language: C++
Result: Accepted
Time:21 ms
Memory:2076 kb
****************************************************************/