#include<bits/stdc++.h>
using namespace std;
const int N = 2147483647;
int n,a,b,x[2005],ans = N;
bool vis[2005];
int dx[2] = {1,-1};
void dfs(int cur ,int sum)
{
if(sum > ans)
{
return ;
}
if(cur == b)
{
ans = min(ans,sum);
return ;
}
for(int i = 0; i <= 1; i++)
{
int next = cur + x[cur] * dx[i];
if(next >= 1 && next <= n && vis[next] == 0)
{
vis[next] = 1;
dfs(next,sum + 1);
vis[next] = 0;
}
}
return ;
}
int main()
{
cin >> n >> a >> b;
for(int i = 1; i <= n; i++)
{
cin >> x[i];
}
dfs(a,0);
if(ans == N)
{
cout << -1;
}
else
cout << ans;
return 0;
}