#include <bits/stdc++.h>
using namespace std;
vector<int> s[10010];
long long dp[300100];
int main() {
  int n, k;
  cin >> n >> k;
  for (int i = 0; i <= 10000; i++) {
    for (int j = i + 1; j <= 10000; j++) {
      if (__builtin_popcount(i ^ j) == k) {
        s[i].push_back(j);
      }
    }
  }
  for (int i = 0; i < n; i++) {
    int x;
    cin >> x;
    dp[x]++;
  }
  long long ans = 0;
  if (k == 0) {
    for (int i = 0; i <= 10000; i++) {
      long long a = dp[i];
      ans += ((a) * (a - 1)) / 2;
    }
    cout << ans;
    return 0;
  }
  for (int i = 0; i <= 10000; i++) {
    if (dp[i]) {
      for (auto item : s[i]) {
        ans += (dp[item] * dp[i]);
      }
    }
  }
  cout << ans;
  return 0;
}
