#include<bits/stdc++.h>
using namespace std;
bool f[100000]={false};
int n,a,b,k[100000],ans=0,i=0;
bool dfs(int start){
if(!(start>-1&&start<=200))return false;
if(start==b){ans++;return true;}
if(f[start]==true)return false;
f[start]=true;
while(i<=n){
++i;
if(dfs(start+k[i])){ans++;return true;}
if(dfs(start-k[i])){ans++;return true;}
}
return false;
}
int main(){
cin>>n>>a>>b;
for(int i=1;i<=n;i++){
cin>>k[i];
}
if(dfs(a-1)){cout<<ans<<endl;}
else cout<<-1<<endl;
return 0;
}