#include <bits/stdc++.h>
#define int long long
using namespace std;
int n , k;
int a[20];
int res ;
int vis[20];
bool stat[20];
void dfs(int head, int cnt)
{
if (cnt == n) {
res++;
return;
}
for (int i = 1; i <= n; i++) {
if ((!stat[i]) && abs(a[i] - vis[cnt]) > k) {
vis[cnt + 1] = a[i];
stat[i] = true;
dfs(head, cnt + 1);
vis[cnt + 1] = 0;
stat[i] = false;
}
}
return;
}
#undef int
int main()
#define int long long
{
// ios::sync_with_stdio(false), cin.tie(nullptr);
freopen("mengbi.in","r",stdin);
freopen("mengbi.out","w",stdout);
cin >> n >>k;
for (int i = 1; i <= n; i++)
cin >> a[i];
for (int i = 1; i <= n; i++) {
memset(vis, 0, sizeof(vis));
memset(stat, 0, sizeof(stat));
vis[1] = a[i];
stat[i] = true;
dfs(i, 1);
}
cout << res;
exit(0);
}