#include <bits/stdc++.h>
using namespace std;
long long a[400000 + 100];
long long b[400000 + 100];
int main() {
  long long n, I;
  scanf("%lld %lld", &n, &I);
  map<long long, long long> mp;
  for (int i = 0; i < n; ++i) {
    scanf("%d", a + i);
    mp[a[i]] += 1;
  }
  int i = 0;
  for (auto p : mp) {
    b[i++] = p.second;
  }
  long long N = n;
  n = mp.size();
  a[0] = b[0];
  for (int i = 1; i < n; ++i) {
    a[i] = b[i];
    a[i] += a[i - 1];
  }
  int p = (I * 8) / N;
  long long k = 1;
  if (p >= 22) {
    k = n;
  } else
    k = pow(2, p);
  k = min(k, n);
  long long res = 1e15;
  for (int i = 0; i + k - 1 < n; ++i) {
    long long res2 = 0;
    if (i > 0) res2 += a[i - 1];
    res2 += a[n - 1] - a[i + k - 1];
    res = min(res, res2);
  }
  printf("%lld", res);
}
