#include<bits/stdc++.h>
#define ll long long
using namespace std;
const int maxn=1e8;
int k[maxn];
bool p[maxn];
int n;
int a;
int b;
queue<int> q1;
int bfs(int i){
if(q1.empty()) return -1;
else if(q1.front()==b) return i;
int x=q1.front()+k[q1.front()];
int y=q1.front()-k[q1.front()];
if(x<=n&&x>=1&&!p[x]) {
q1.push(x);
p[x]=true;
}
if(y>=1&&y<=n&&!p[y]) {
p[y]=true;
q1.push(y);
}
q1.pop();
bfs(++i);
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++) cin>>k[i];
q1.push(a);
cout<<bfs(0);
}