#include <bits/stdc++.h>
using namespace std;
int k[201];
int n;
int fx,fy;
int ans=1<<30;
void dfs(int x,int t)
{
if(x>fy) return;
if(x==fy)
{
ans=min(ans,t);
return;
}
if(x+k[x]<=n) {
x+=k[x];
t++;
dfs(x,t);
t--;
x-=k[x];
}
if(x-k[x]>=1)
{ x-=k[x];
t++;
dfs(x,t);
t--;
x+=k[x];
}
}
int main()
{
cin>>n;
int i,j;
cin>>fx>>fy;
for(i=1;i<=n;i++)
cin>>k[i];
dfs(fx,0);
if(ans==1<<30) cout<<-1;
else
cout<<ans;
}