/* -*- coding: utf-8 -*- * * 2334.cc: No.2334 Distinct Cards - yukicoder */ #include #include using namespace std; /* constant */ const int MAX_N = 100000; /* typedef */ /* global variables */ int as[MAX_N], cs[MAX_N]; /* subroutines */ /* main */ int main() { int n, k; scanf("%d%d", &n, &k); for (int i = 0; i < n; i++) scanf("%d", as + i); sort(as, as + n); int m = 0; for (int i = 0; i < n;) { int j = i; while (i < n && as[j] == as[i]) i++; cs[m++] = i - j; } sort(cs, cs + m); int l = 0, s = 0; for (int i = m - 1; i >= 0 && s < k; i--) s += cs[i], l++; printf("%d\n", l); return 0; }