#include <vector>
#include <list>
#include <map>
#include <set>
#include <deque>
#include <queue>
#include <stack>
#include <bitset>
#include <algorithm>
#include <functional>
#include <numeric>
#include <utility>
#include <sstream>
#include <iostream>
#include <iomanip>
#include <cstdio>
#include <cmath>
#include <cstdlib>
#include <ctime>
#include <cstring>
#include <climits>
#include <stdlib.h>
#include <stdio.h>
using namespace std;
#define REP(i,n) for(int i=0; i<n; i++)
#define FOR(i,st,end) for(int i=st;i<end;i++)
#define db(x) cout << (#x) << " = " << x << endl;
#define mp make_pair
#define pb push_back
typedef long long int ll;
int main(){
ll n,a,b;
ll arr[40];
ll subSetSize;
vector<ll>sum1;
vector<ll>sum2;
scanf("%lld%lld%lld",&n,&a,&b);
REP(i,n){
scanf("%lld",&arr[i]);
}
ll powerSetSize=1<<n/2;
subSetSize=n/2;
//finding subset sum for first half
for(ll i=0;i<powerSetSize;i++){
ll sum=0;
REP(j,subSetSize){
if(i&(1<<j)){
sum+=arr[j];
}
}
sum1.pb(sum);
}
//this is to classify even and odd n cases
if((n&1)==1){
subSetSize=n/2+1;
powerSetSize=1<<subSetSize;
}
else{
subSetSize=n/2;
powerSetSize=1<<subSetSize;
}
//finding subset sum for 2nd half
for(ll i=0;i<powerSetSize;i++){
ll sum=0;
REP(j,subSetSize){
if(i&(1<<j)){
sum+=arr[n/2+j];
}
}
sum2.pb(sum);
}
sort(sum1.begin(),sum1.end());
vector<ll>::iterator low,high;
ll ans=0;
//use STL functions to find lower bounds and upper bounds(which internally uses binary search)
REP(i,sum2.size()){
low=lower_bound(sum1.begin(),sum1.end(),a-sum2[i]);//CAN SOMEONE EXPLAIN WHATS BEING DONE HERE
high=upper_bound(sum1.begin(),sum1.end(),b-sum2[i]);//CAN SOMEONE EXPLAIN WHATS BEING DONE HERE
ans+=(high-low);
}
printf("%lld\n",ans);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGxpc3Q+CiNpbmNsdWRlIDxtYXA+CiNpbmNsdWRlIDxzZXQ+CiNpbmNsdWRlIDxkZXF1ZT4KI2luY2x1ZGUgPHF1ZXVlPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxiaXRzZXQ+CiNpbmNsdWRlIDxhbGdvcml0aG0+CiNpbmNsdWRlIDxmdW5jdGlvbmFsPgojaW5jbHVkZSA8bnVtZXJpYz4KI2luY2x1ZGUgPHV0aWxpdHk+CiNpbmNsdWRlIDxzc3RyZWFtPgojaW5jbHVkZSA8aW9zdHJlYW0+CiNpbmNsdWRlIDxpb21hbmlwPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8Y21hdGg+CiNpbmNsdWRlIDxjc3RkbGliPgojaW5jbHVkZSA8Y3RpbWU+CiNpbmNsdWRlIDxjc3RyaW5nPgojaW5jbHVkZSA8Y2xpbWl0cz4KI2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8c3RkaW8uaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBSRVAoaSxuKSBmb3IoaW50IGk9MDsgaTxuOyBpKyspCiNkZWZpbmUgRk9SKGksc3QsZW5kKSBmb3IoaW50IGk9c3Q7aTxlbmQ7aSsrKQojZGVmaW5lIGRiKHgpIGNvdXQgPDwgKCN4KSA8PCAiID0gIiA8PCB4IDw8IGVuZGw7CiNkZWZpbmUgbXAgbWFrZV9wYWlyCiNkZWZpbmUgcGIgcHVzaF9iYWNrCnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKaW50IG1haW4oKXsKCWxsIG4sYSxiOwoJbGwgYXJyWzQwXTsKCWxsIHN1YlNldFNpemU7Cgl2ZWN0b3I8bGw+c3VtMTsKCXZlY3RvcjxsbD5zdW0yOwoJc2NhbmYoIiVsbGQlbGxkJWxsZCIsJm4sJmEsJmIpOwoJUkVQKGksbil7CgkJc2NhbmYoIiVsbGQiLCZhcnJbaV0pOwoJfQoJbGwgcG93ZXJTZXRTaXplPTE8PG4vMjsKCXN1YlNldFNpemU9bi8yOwoJLy9maW5kaW5nIHN1YnNldCBzdW0gZm9yIGZpcnN0IGhhbGYKCWZvcihsbCBpPTA7aTxwb3dlclNldFNpemU7aSsrKXsKCQlsbCBzdW09MDsKCQlSRVAoaixzdWJTZXRTaXplKXsKCQkJaWYoaSYoMTw8aikpewoJCQkJc3VtKz1hcnJbal07CgkJCX0KCQl9CgkJc3VtMS5wYihzdW0pOwoJfQoJLy90aGlzIGlzIHRvIGNsYXNzaWZ5IGV2ZW4gYW5kIG9kZCBuIGNhc2VzCiAgICBpZigobiYxKT09MSl7CgkJCgkJc3ViU2V0U2l6ZT1uLzIrMTsKCQlwb3dlclNldFNpemU9MTw8c3ViU2V0U2l6ZTsKCX0KCWVsc2V7CgkJCgkJc3ViU2V0U2l6ZT1uLzI7CgkJcG93ZXJTZXRTaXplPTE8PHN1YlNldFNpemU7Cgl9CgkvL2ZpbmRpbmcgc3Vic2V0IHN1bSBmb3IgMm5kIGhhbGYKCWZvcihsbCBpPTA7aTxwb3dlclNldFNpemU7aSsrKXsKCQlsbCBzdW09MDsKCQlSRVAoaixzdWJTZXRTaXplKXsKCQkJaWYoaSYoMTw8aikpewoJCQkJc3VtKz1hcnJbbi8yK2pdOwoJCQl9CgkJfQoJCXN1bTIucGIoc3VtKTsKCX0KCXNvcnQoc3VtMS5iZWdpbigpLHN1bTEuZW5kKCkpOwoJdmVjdG9yPGxsPjo6aXRlcmF0b3IgbG93LGhpZ2g7CglsbCBhbnM9MDsKCS8vdXNlIFNUTCBmdW5jdGlvbnMgdG8gZmluZCBsb3dlciBib3VuZHMgYW5kIHVwcGVyIGJvdW5kcyh3aGljaCBpbnRlcm5hbGx5IHVzZXMgYmluYXJ5IHNlYXJjaCkKCVJFUChpLHN1bTIuc2l6ZSgpKXsKCQlsb3c9bG93ZXJfYm91bmQoc3VtMS5iZWdpbigpLHN1bTEuZW5kKCksYS1zdW0yW2ldKTsvL0NBTiBTT01FT05FIEVYUExBSU4gV0hBVFMgQkVJTkcgRE9ORSBIRVJFCgkJaGlnaD11cHBlcl9ib3VuZChzdW0xLmJlZ2luKCksc3VtMS5lbmQoKSxiLXN1bTJbaV0pOy8vQ0FOIFNPTUVPTkUgRVhQTEFJTiBXSEFUUyBCRUlORyBET05FIEhFUkUKCQlhbnMrPShoaWdoLWxvdyk7Cgl9CglwcmludGYoIiVsbGRcbiIsYW5zKTsKCQp9CgkKCQoJICAKCQkKCQkKCQoJCgk=