#include <bits/stdc++.h>
using namespace std;
const int maxn = 4e5 + 10;
long long a[maxn];
long long Cnt[maxn];
map<int, int> mm;
int main() {
  long long n, I;
  scanf("%lld %lld", &n, &I);
  for (int i = 0; i < n; i++) {
    scanf("%lld", a + i);
    mm[a[i]]++;
  }
  sort(a, a + n);
  long long g = 0;
  map<int, int>::iterator it = mm.begin();
  for (; it != mm.end(); it++) {
    Cnt[g++] = it->second;
  }
  if (((8 * I / n) > 18)) return puts("0"), 0;
  long long k = min(1ll << (8 * I / n), n);
  if (k >= g) return puts("0"), 0;
  long long ans, sum = 0;
  for (int i = 0; i < k; i++) {
    sum += Cnt[i];
  }
  ans = sum;
  for (int i = k; i < g; i++) {
    sum += Cnt[i];
    sum -= Cnt[i - k];
    ans = max(ans, sum);
  }
  printf("%lld\n", n - ans);
  return 0;
}
