#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=6e6+10;
int head[N],cnt,vis[N],tot,a[N],dis[N];
int n,l,r,minn=LLONG_MAX;
queue<int>q;
inline void spfa(){
memset(dis,0x3f,sizeof(dis));
memset(vis,0,sizeof(vis));
q.push(0);
vis[0]=1;
dis[0]=0;
while(!q.empty()){
int x=q.front();
q.pop();
vis[x]=0;
for(int i=1;i<=tot;i++){
if(a[i]==minn)continue;
int y=(x+a[i])%minn;
if(dis[y]>dis[x]+a[i]){
dis[y]=dis[x]+a[i];
if(!vis[y]){
q.push(y);
vis[y]=1;
}
}
}
}
}
inline int query(int now){
int ans=0;
for(int i=0;i<now;i++){
if(dis[i]<=now){
ans+=(now-dis[i])/minn+1;
}
}
return ans;
}
signed main(){
scanf("%lld%lld%lld",&n,&l,&r);
for(int opt,i=1;i<=n;i++){
scanf("%lld",&opt);
if(opt>0){
a[++tot]=opt;
minn=min(minn,opt);
}
}
spfa();
printf("%lld",query(r)-query(l-1));
}