#include <iostream>
#include <algorithm>
#include <set>
#include <deque>
using namespace std;
const int SIZE = 1000007;
bool v[1000007] = {};
int ans[1000007] = {};
int main(){
int n, k;
cin >> n >> k;
int arr[n];
for(int i = 0; i < n; i++){
cin >> arr[i];
v[arr[i]] = 1;
}
if(k > 0){
for(int i = 0; i < n; i++){
if(arr[i] > k) for(int j = k; j < SIZE; j += arr[i]) ans[j]++;
}
} else {
for(int i = 0; i < n; i++){
for(int j = 0; j < SIZE; j += arr[i]) ans[j]++;
}
for(int i = 0; i < n; i++){
cout << (ans[arr[i]]-1) << ' ';
}
cout << '\n';
return 0;
}
for(int i = 0; i < n; i++){
cout << ans[arr[i]] << ' ';
}
cout << '\n';
}