#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
****************************************************************/