/*
因为 f()过大可以等效替代 -》 dis[i] : %x 的最小值
因为从0开始,而且 ai +(0~x-1) 会有重边 所以可以边出队 边扩展
输入后 spfa 同时 拓展->最短路
a[]_min 是最好的mod因为点数少,边数也少 a[]_min*a[]_min
*/
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
//#include<queue>
//#include<vector>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------------\n");
using namespace std;
const int maxn=1e2+10 ;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n;
ll l,r,a[maxn],mod=inf,ans1,ans2;
ll dis[500010];int vis[500010];
void spfa()
{
memset(dis,0x3f,sizeof(dis));
queue<int> q;q.push(0);dis[0]=0;vis[0]=1;
while(!q.empty())
{
int u=q.front();q.pop(); vis[u]=0;
for(int i=1;i<=n;i++)
{
int v=(u+a[i])%mod;
if(dis[v]>dis[u]+a[i])
{
dis[v]=dis[u]+a[i];
if(vis[v]==0) q.push(v),vis[v]=1;
}
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>l>>r;
for(int i=1;i<=n;i++) cin>>a[i],mod=min(mod,a[i]);
spfa();
for(int i=0;i<mod;i++){
if(dis[i]<=l-1) ans1+=(l-1-dis[i])/mod+1;
if(dis[i]<=r) ans2+=(r-dis[i])/mod+1;
}
cout<<ans2-ans1<<'\n';
return 0;
}
//55 points 因为重复多次连边+拓展 速度慢
/*
#include<cstdio>
#include<iostream>
#include<algorithm>
#include<cmath>
//#include<queue>
//#include<vector>
#include<bits/stdc++.h>
#define ll long long
#define ddd printf("-----------------------\n");
using namespace std;
const int maxn=1e2+10 ;
const ll inf=0x3f3f3f3f3f3f3f3f;
int n;
ll l,r,a[maxn],mod=inf,ans1,ans2;
int head[500010],to[500100],nxt[500100],w[500100],tot;
ll dis[500010];int vis[500010];
void add(int a,int b,int val){
to[++tot]=b,nxt[tot]=head[a],head[a]=tot,w[tot]=val;
}
void spfa()
{
memset(dis,0x3f,sizeof(dis));
queue<int> q;q.push(0);dis[0]=0;vis[0]=1;
while(!q.empty())
{
int u=q.front();q.pop(); vis[u]=0;
for(int i=head[u];i;i=nxt[i])
{
int v=to[i];
if(dis[v]>dis[u]+w[i])
{
dis[v]=dis[u]+w[i];
if(vis[v]==0) q.push(v),vis[v]=1;
}
}
}
}
int main()
{
ios::sync_with_stdio(false);
cin>>n>>l>>r;
for(int i=1;i<=n;i++) cin>>a[i],mod=min(mod,a[i]);
for(int i=0;i<mod;i++)
for(int j=1;j<=n;j++){
add(i,(i+a[j])%mod,a[j]);
}
spfa();
for(int i=0;i<mod;i++){
if(dis[i]<=l-1) ans1+=(l-1-dis[i])/mod+1;
if(dis[i]<=r) ans2+=(r-dis[i])/mod+1;
}
cout<<ans2-ans1<<'\n';
return 0;
}
*/