#include <bits/stdc++.h>
#define ll long long
#define ull unsigned long long
using namespace std;
vector< vector<ull> > get_subsets(vector<ull> set)
{
vector< vector<ull> > sub;
vector<ull> e;
sub.push_back(e);
for (unsigned int i = 0; i < set.size(); i++) {
vector< vector<ull> > t = sub;
ull sz1=t.size();
for (ull j = 0; j < sz1; j++)
t[j].push_back( set[i] );
sz1=t.size();
for (ull j = 0; j <sz1; j++)
sub.push_back(t[j] );
}
return sub;
}
int main() {
std::ios::sync_with_stdio(false);
vector< vector<ull> > sub,sub1;
vector<ull> set,set1;
int n;
cin>>n;
ull count=0,c=0,val,k;
cin>>k;
for(int i=0;i<n;i++){
cin>>val;
if(val==1)
c++;
else if(i<=n/2){
set1.push_back(val);
}
else{
set.push_back(val);
}
}
sort(set.begin(),set.end());
sort(set1.begin(),set1.end());
sub=get_subsets(set);
sub1=get_subsets(set1);
ull sz1=sub.size(),sz2=sub1.size();
vector<ull> pro1,pro2;
ull p=1;
for(ull i=0;i<sz1;i++)
{
p=1;
vector<ull> x=sub[i];
ull sz3=x.size();
for(ull j=0;j<sz3;j++)
{
//p*=x[j];
ull a=p;
p=a*x[j];
if (p/a!=x[j]) {
p=k+1;
count++;
break;
}
if(p>k){
count++;
break;
}
}
if(x.size()>0){
// cout<<"Product1 "<<p<<endl;
pro1.push_back(p);
}
}
// cout<<count<<endl;
for(ull i=0;i<sz2;i++)
{
p=1;
vector<ull> x=sub1[i];
ull sz3=x.size();
for(ull j=0;j<sz3;j++)
{
ull a=p;
p=a*x[j];
if ( p/a!=x[j]) {
p=k+1;
count++;
break;
}
if(p>k){
count++;
break;
}
}
if(x.size()>0){
// cout<<"Product2 "<<p<<endl;
pro2.push_back(p);
}
p=1;
}
// cout<<count<<endl;
sort(pro1.begin(),pro1.end());
sort(pro2.begin(),pro2.end());
ull m=pro1.size();
ull n1=pro2.size();
for(ull i=0;i<m;i++){
for(ull j=0;j<n1;j++){
ull a=pro1[i]*pro2[j];
if ( a/pro1[i]!= pro2[j]) {
count+=(n1-j);
break;
}
else if(a>k){
count+=(n1-j);
break;
}
}
}
count+=(count*c);
//cout<<count<<endl;
cout<<(1<<n)-(count+1)<<endl;
return 0;
}
ICAgICNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgogICAgI2RlZmluZSBsbCBsb25nIGxvbmcKICAgICNkZWZpbmUgdWxsIHVuc2lnbmVkIGxvbmcgbG9uZyAKICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAgCiAgICB2ZWN0b3I8IHZlY3Rvcjx1bGw+ID4gZ2V0X3N1YnNldHModmVjdG9yPHVsbD4gc2V0KQogICAgewogICAgICAgIHZlY3RvcjwgdmVjdG9yPHVsbD4gPiBzdWI7CiAgICAgICAgdmVjdG9yPHVsbD4gZTsKICAgICAgICBzdWIucHVzaF9iYWNrKGUpOwogICAgICAgIGZvciAodW5zaWduZWQgaW50IGkgPSAwOyBpIDwgc2V0LnNpemUoKTsgaSsrKSB7CiAgICAgICAgICAgIHZlY3RvcjwgdmVjdG9yPHVsbD4gPiB0ID0gc3ViOwogICAgICAgICAgICB1bGwgc3oxPXQuc2l6ZSgpOwogICAgICAgICAgICBmb3IgKHVsbCBqID0gMDsgaiA8IHN6MTsgaisrKQogICAgICAgICAgICAgICAgdFtqXS5wdXNoX2JhY2soIHNldFtpXSApOwogICAgICAgICAgICAgICAgCiAgICAgICAgICAgIHN6MT10LnNpemUoKTsKICAgICAgICAgICAgZm9yICh1bGwgaiA9IDA7IGogPHN6MTsgaisrKQogICAgICAgICAgICAgICAgc3ViLnB1c2hfYmFjayh0W2pdICk7CiAgICAgICAgfQogICAgICAgIHJldHVybiBzdWI7CiAgICB9CgogICAgaW50IG1haW4oKSB7CiAgICAJc3RkOjppb3M6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICAJdmVjdG9yPCB2ZWN0b3I8dWxsPiA+IHN1YixzdWIxOwogICAgCXZlY3Rvcjx1bGw+IHNldCxzZXQxOwogICAgCWludCBuOwogICAgCWNpbj4+bjsKICAgIAl1bGwgY291bnQ9MCxjPTAsdmFsLGs7CiAgICAJY2luPj5rOwogICAgCWZvcihpbnQgaT0wO2k8bjtpKyspewogICAgCQljaW4+PnZhbDsKICAgIAkJaWYodmFsPT0xKQoJCQkJYysrOwogICAgCQllbHNlIGlmKGk8PW4vMil7CiAgICAJCQlzZXQxLnB1c2hfYmFjayh2YWwpOwogICAgCQl9CiAgICAJCWVsc2V7CgkJCQlzZXQucHVzaF9iYWNrKHZhbCk7CgkJCX0KICAgIAl9CiAgCiAgICAJc29ydChzZXQuYmVnaW4oKSxzZXQuZW5kKCkpOwogICAgCQogICAgCXNvcnQoc2V0MS5iZWdpbigpLHNldDEuZW5kKCkpOwogICAgCQogICAgCXN1Yj1nZXRfc3Vic2V0cyhzZXQpOwogICAgCXN1YjE9Z2V0X3N1YnNldHMoc2V0MSk7CiAgICAJdWxsIHN6MT1zdWIuc2l6ZSgpLHN6Mj1zdWIxLnNpemUoKTsKICAgIAl2ZWN0b3I8dWxsPiBwcm8xLHBybzI7CiAgICAJdWxsIHA9MTsKICAgIAlmb3IodWxsIGk9MDtpPHN6MTtpKyspCiAgICAJewoJCQlwPTE7CiAgICAJCXZlY3Rvcjx1bGw+IHg9c3ViW2ldOwogICAgCQl1bGwgc3ozPXguc2l6ZSgpOwogICAgCQlmb3IodWxsIGo9MDtqPHN6MztqKyspCiAgICAJCXsKICAgIAkJCS8vcCo9eFtqXTsKICAgIAkJCXVsbCBhPXA7CiAgICAJCQlwPWEqeFtqXTsKICAgIAkJCWlmIChwL2EhPXhbal0pIHsKCQkJCQlwPWsrMTsKCQkJCQljb3VudCsrOwoJCQkJCWJyZWFrOwoJCQkJfQogICAgCQkJaWYocD5rKXsKICAgIAkJCQljb3VudCsrOwkJCiAgICAJCQkJYnJlYWs7CiAgICAJCQl9CiAgICAJCX0KICAgIAkJaWYoeC5zaXplKCk+MCl7CgkvLwkJCWNvdXQ8PCJQcm9kdWN0MSAgIjw8cDw8ZW5kbDsKCQkJCXBybzEucHVzaF9iYWNrKHApOwoJCQl9CiAgICAJCQogICAgCX0KICAgLy8gCWNvdXQ8PGNvdW50PDxlbmRsOwogICAgCWZvcih1bGwgaT0wO2k8c3oyO2krKykKICAgIAl7CgkJCXA9MTsKICAgIAkJdmVjdG9yPHVsbD4geD1zdWIxW2ldOwogICAgCQl1bGwgc3ozPXguc2l6ZSgpOwogICAgCQlmb3IodWxsIGo9MDtqPHN6MztqKyspCiAgICAJCXsKCQkJCXVsbCBhPXA7CiAgICAJCQlwPWEqeFtqXTsKICAgIAkJCWlmICggcC9hIT14W2pdKSB7CgkJCQkJcD1rKzE7CgkJCQkJY291bnQrKzsKCQkJCQlicmVhazsKCQkJCX0KICAgIAkJCWlmKHA+ayl7CiAgICAJCQkJY291bnQrKzsKICAgIAkJCQlicmVhazsKICAgIAkJCX0KICAgIAkJfQogICAgCQlpZih4LnNpemUoKT4wKXsKCS8vCQkJY291dDw8IlByb2R1Y3QyICAiPDxwPDxlbmRsOwoJCQkJcHJvMi5wdXNoX2JhY2socCk7CgkJCX0KICAgIAkJcD0xOwogICAgCX0KICAgIC8vCWNvdXQ8PGNvdW50PDxlbmRsOwogICAgCQoJCiAgICAJc29ydChwcm8xLmJlZ2luKCkscHJvMS5lbmQoKSk7CiAgICAJc29ydChwcm8yLmJlZ2luKCkscHJvMi5lbmQoKSk7CiAgIAoJCQogICAgCXVsbCBtPXBybzEuc2l6ZSgpOwogICAgCXVsbCBuMT1wcm8yLnNpemUoKTsKCQlmb3IodWxsIGk9MDtpPG07aSsrKXsKCQkJZm9yKHVsbCBqPTA7ajxuMTtqKyspewoJCQkJdWxsIGE9cHJvMVtpXSpwcm8yW2pdOwogICAgCQkJaWYgKCBhL3BybzFbaV0hPSBwcm8yW2pdKSB7CgkJCQkJY291bnQrPShuMS1qKTsKCQkJCQlicmVhazsKCQkJCX0KCQkJCWVsc2UgaWYoYT5rKXsKCQkJCQljb3VudCs9KG4xLWopOwoJCQkJCWJyZWFrOwoJCQkJfQoJCQkJCgkJCX0KCQl9CgkJCgkJY291bnQrPShjb3VudCpjKTsKCQkvL2NvdXQ8PGNvdW50PDxlbmRsOwogICAgCWNvdXQ8PCgxPDxuKS0oY291bnQrMSk8PGVuZGw7CiAgICAJcmV0dXJuIDA7CiAgICB9IAo=