#include<bits/stdc++.h>
using namespace std;
int n,sum=0,b,a[200005],c,d[100000];
struct node
{
int x;
int y;
};
queue<node>r;
void bfs(int tx)
{
node q,p;
q.x=tx;
q.y=0;
r.push(q);
while(!r.empty())
{
q=r.front();
r.pop();
if(q.x==b)
{
cout<<q.y;
return ;
}
p.x=q.x+d[q.x];
if(p.x>=1&&p.x<=c&&a[p.x]==0)
{
a[p.x]=1;
p.y=q.y+1;
r.push(p);
}
p.x=q.x-d[q.x];
if(p.x>=1&&p.x<=c&&a[p.x]==0)
{
a[p.x]=1;
p.y=q.y+1;
r.push(p);
}
}
}
int main()
{
cin>>c>>n>>b;
for(int i=1;i<=c;i++)
{
cin>>d[i];
}
bfs(n);
return 0;
}