#include<iostream>
#include<queue>
using namespace std;
int N,A,B,x,ans;
int k[209];
int visited[209];
queue<int>q;
void bfs(int A,int B)
{
if(A!=B)
{
q.push(A);
while(!q.empty())
{
x = q.front();q.pop();
if(visited[x+k[x]]==0&&x+k[x]<=N)
{
q.push(x+k[x]);
ans++;
visited[x+k[x]] = 1;
}
if(visited[x-k[x]]==0&&x-k[x]>=0)
{
q.push(x-k[x]);
ans++;
visited[x-k[x]] = 1;
}
if(q.back() == B) break;
}
if(q.back() != B) ans = -1;
}
else ans = 0;
}
int main()
{
cin>>N>>A>>B;
for(int i = 1;i<=N;i++)
{
cin>>k[i];
}
bfs(A,B);
cout<<ans;
return 0;
}