//Ayush Kushwaha MNNIT
//meet in the middle logic
#include<bits/stdc++.h>
using namespace std;
#define ll int
ll x[1000000],y[1000000];
ll a[1000000];
void subarray(ll a[],ll w[],ll n,ll c)
{
for(int i=0;i<(1<<n);i++)
{
ll s=1;
for(int j=0;j<n;j++)
if(i & (1<<j))
s*=a[j+c];
w[i]=s;
}
}
ll subsum(ll a[],ll n,ll f)
{
subarray(a,x,n,0);
subarray(a,y,n-n/2,n/2);
int sx=(1<<n/2);
int sy=(1<<(n-n/2));
sort(y,y+sy);
int h=0,k=-100000;
int d=0;
for(int i=0;i<sx;i++)
{
if(x[i]<=f)
h+=lower_bound(y,y+sy,f/x[i])-y;
}
return h-1;
}
int main()
{
ll n,f;
cin>>n>>f;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
cout<<subsum(a,n,f);
// cout<<p%f<<"\n";
}
Ci8vQXl1c2ggS3VzaHdhaGEgTU5OSVQKLy9tZWV0IGluIHRoZSBtaWRkbGUgbG9naWMKCiNpbmNsdWRlPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgbGwgaW50CmxsIHhbMTAwMDAwMF0seVsxMDAwMDAwXTsKbGwgYVsxMDAwMDAwXTsKCgp2b2lkIHN1YmFycmF5KGxsIGFbXSxsbCB3W10sbGwgbixsbCBjKQp7Cglmb3IoaW50IGk9MDtpPCgxPDxuKTtpKyspCgl7CgkJbGwgcz0xOwoJCWZvcihpbnQgaj0wO2o8bjtqKyspCgkJaWYoaSAmICgxPDxqKSkKCQkJcyo9YVtqK2NdOwoJCgl3W2ldPXM7CQkKCX0KfQoKbGwgc3Vic3VtKGxsIGFbXSxsbCBuLGxsIGYpCnsKCXN1YmFycmF5KGEseCxuLDApOwoJc3ViYXJyYXkoYSx5LG4tbi8yLG4vMik7CglpbnQgc3g9KDE8PG4vMik7CglpbnQgc3k9KDE8PChuLW4vMikpOwoJc29ydCh5LHkrc3kpOwoJaW50IGg9MCxrPS0xMDAwMDA7CglpbnQgZD0wOwoJZm9yKGludCBpPTA7aTxzeDtpKyspCgl7CgkJaWYoeFtpXTw9ZikKCQkgICBoKz1sb3dlcl9ib3VuZCh5LHkrc3ksZi94W2ldKS15OwoJfQoJcmV0dXJuIGgtMTsKfQoKaW50IG1haW4oKQp7CglsbCBuLGY7CgljaW4+Pm4+PmY7Cglmb3IoaW50IGk9MDtpPG47aSsrKQoJewoJCWNpbj4+YVtpXTsKCX0KCWNvdXQ8PHN1YnN1bShhLG4sZik7CgkvLyBjb3V0PDxwJWY8PCJcbiI7CQp9