#include <iostream>
#include<vector>
#include<algorithm>
#include<unordered_map>
using namespace std;
typedef long long ll;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
ll k;
cin>>n>>k;
vector<ll>a(n);
unordered_map<ll,int>cnt;
for(int i=0;i<n;i++){
cin>>a[i];
cnt[a[i]]++;
}
sort(a.begin(),a.end());
ll less=0;
int l=0,r=n-1;
while(l<r){
if(a[l]>k/a[r])r--;
else{
if(a[l]*a[r]<k){
less+=r-l;
l++;
}
else r--;
}
}
ll equal=0;
unordered_map<ll,bool>visited;
for(auto&[num,freq]:cnt){
if(visited.count(num))continue;
if(k%num!=0)continue;
ll t=k/num;
if(cnt.count(t)){
if(t==num)equal+=(ll)freq*(freq-1)/2;
else{
equal+=(ll)freq*cnt[t];
visited[t]=true;
}
}
visited[num]=true;
}
ll total=(ll)n*(n-1)/2;
ll more=total-less-equal;
cout<<more<<" "<<equal<<" "<<less;
return 0;
}