#include <bits/stdc++.h>
using namespace std;
const int maxn = 1 << 20;
int n, k;
int a[maxn];
vector<int> tmp;
bool judge(int a) {
  int ans = 0;
  while (a) {
    if (a & 1) ans++;
    a >>= 1;
  }
  return ans == k;
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i <= 1 << 15; i++) {
    if (judge(i)) tmp.push_back(i);
  }
  int x;
  long long ans = 0;
  int len = tmp.size();
  for (int i = 0; i < n; i++) {
    scanf("%d", &x);
    for (int j = 0; j < len; j++) {
      if ((x ^ tmp[j]) < maxn) ans += a[x ^ (tmp[j])];
    }
    a[x]++;
  }
  printf("%lld\n", ans);
  return 0;
}
