#include<bits/stdc++.h> using namespace std; int n,b,a,c[201],f,ans; queue<int>q; int main(){ cin>>n>>a>>b; f=n; for(int i=1;i<=n;i++)cin>>c[i]; if(a==b){ cout<<0; return 0; } q.push({a}); while(--f){ ans++; for(int i=q.size();i>0;i--){ int tx=q.front()+c[q.front()],cx=q.front()-c[q.front()]; if(tx==b||cx==b){ cout<<ans; return 0; } if(tx>=1&&tx<=n)q.push({tx}); if(cx>=1&&cx<=n)q.push({cx}); q.pop(); } } cout<<-1; return 0; } /************************************************************** Problem: 1819 User: chenshuocs Language: C++ Result: Accepted Time:21 ms Memory:2076 kb ****************************************************************/