#include<bits/stdc++.h>
using namespace std;
int n,a,b;
int k[201];
int sum[201];
void dfs(int f,int step){
//	cout<<f<<endl;
	if(f==b) sum[b]=min(sum[b],step);
	else {
		int tf=f+k[f];
		if(tf>=1&&tf<=n&&sum[tf]>step){
			dfs(tf,step+1);
		} 
		tf=f-k[f];
		if(tf>=1&&tf<=n&&sum[tf]>step) dfs(tf,step+1);
	}
}
int main(){
	cin>>n>>a>>b;
	for(int i=1;i<=n;i++) {
		cin>>k[i];
		sum[i]=10086;
	}
	dfs(a,0);
	cout<<sum[b];
	return 0;
}

/**************************************************************
	Problem: 1819
	User: liuchengxuan
	Language: C++
	Result: Time Limit Exceed
****************************************************************/