#include <bits/stdc++.h>
using namespace std;
long long cumu[200005];
int main() {
  int n, k, x;
  while (scanf("%d %d", &n, &k) == 2) {
    memset(cumu, 0ll, sizeof cumu);
    int mn = INT_MAX;
    for (int i = 0; i < n; i++)
      scanf("%d", &x), cumu[x + 1] -= 1, mn = min(mn, x);
    cumu[1] = n;
    for (int i = 1; i <= 200001; i++) cumu[i] += cumu[i - 1];
    for (int i = 1; i <= 200001; i++) cumu[i] += cumu[i - 1];
    int last = 200001;
    int cut = 0;
    int ans = 0;
    for (int i = 200000; i >= mn; i--) {
      cut = cumu[last] - cumu[i];
      if (cut > k) ans++, last = i + 1, cut = cumu[last] - cumu[i];
    }
    ans += (cut != 0);
    printf("%d\n", ans);
  }
  return 0;
}
