#include<bits/stdc++.h>
using namespace std;
int n,b,a,ans;
int x[201];
bool y[201],w;
queue<int> q;
void bfs(){
while(!q.empty()){
ans++;
int xx=q.front();
int tx=xx+x[xx];
int ty=xx-x[xx];
if(tx==a||ty==a){
cout<<ans;
w=1;
return;
}
if(tx>=1&&tx<=n&&y[tx]==0){
q.push(tx);
y[tx]=1;
}
if(ty>=1&&ty<=n&&y[ty]==0){
q.push(ty);
y[ty]=1;
}
q.pop();
}
}
int main(){
cin>>n>>b>>a;
for(int i=1;i<=n;i++)
{
cin>>x[i];
}
q.push(b);
y[b]=1;
bfs();
if(w==0)
{
cout<<-1;
}
}
/**************************************************************
Problem: 1819
User: wuyunfeng
Language: C++
Result: Wrong Answer
****************************************************************/