package chelper; import java.util.ArrayList; import java.util.List; import io.InputReader; import io.OutputWriter; public class D { public void solve(int testNumber, InputReader in, OutputWriter out) { int n = in.nextInt(); int k = in.nextInt(); int M = 1 << 16; int[] a = new int[M]; for (int i = 0; i < n; i++) { int x = in.nextInt(); a[x]++; } List masks = new ArrayList<>(); for (int i = 0; i < M; i++) { if (Integer.bitCount(i) == k) { masks.add(i); } } long answer = 0; for (int i = 0; i < M; i++) { if (a[i] == 0) { continue; } for (int mask : masks) { if ((i ^ mask) < i) { answer += a[i] * a[i ^ mask]; } if ((i ^ mask) == i) { answer += a[i] * (a[i] - 1) / 2; } } } out.println(answer); } }