#include <algorithm>
#include <cassert>
#include <cstdio>
#include <cmath>
#include <deque>
#include <iostream>
#include <map>
#include <unordered_set>
#include <unordered_map>
#include <vector>
#include <set>

using namespace::std;


int main() {
  ios::sync_with_stdio(false);
  int n, k;
  cin >> n >> k;
  unordered_map<int, int> c;
  for (int i = 0; i < n; ++i) {
    int a;
    cin >> a;
    ++c[a];
  }
  vector<int> b;
  for (const auto& [_, cx] : c) b.push_back(cx);
  sort(b.begin(), b.end(), greater<int>());
  int r = 0;
  for (; k > 0; ++r) k -= b[r];
  cout << r << endl; 
  
  

  
  return 0;
}