#include <bits/stdc++.h>
#include <stdio.h>
#include <cstdio>
using namespace std;
int n,a,b,f[210],ans=1e9,vis[210];
void dfs(int now,int times)
{
if(times>n)
return;
if(now==b)
{
ans = min(ans,times);
}
else if(times<=ans)
{
if(now-f[now]>=1&&!vis[now-f[now]])
{
vis[now-f[now]]=1;
dfs(now-f[now],times+1);
vis[now-f[now]]=0;
}
if(now+f[now]<=n&&!vis[now+f[now]])
{
vis[now+f[now]] = 1;
dfs(now+f[now],times+1);
vis[now+f[now]]=0;
}
}
}
int main()
{
cin>>n>>a>>b;
for(int i=1;i<=n;i++)
cin>>f[i];
vis[a]=1;
dfs(a,0);
if(ans!=1e9)
cout<<ans;
else
cout<<-1;
return 0;
}