#include <bits/stdc++.h>
using namespace std;
const int maxn = 2e5 + 10;
int n, k;
int niz[maxn];
multiset<int> dist[maxn];
int sum[maxn];
void ins(int a, int kol) {
  if (dist[a].size() == k) {
    dist[a].insert(kol);
    sum[a] += kol;
    sum[a] -= *dist[a].rbegin();
    dist[a].erase(--dist[a].end());
  } else {
    dist[a].insert(kol);
    sum[a] += kol;
  }
}
int main() {
  scanf("%d%d", &n, &k);
  for (int i = 0; i < n; i++) scanf("%d", niz + i);
  for (int i = 0; i < n; i++) {
    int tren = niz[i];
    int kol = 0;
    ins(tren, kol++);
    do {
      tren /= 2;
      ins(tren, kol++);
    } while (tren > 0);
  }
  int sol = 0x3f3f3f3f;
  for (int i = 0; i < maxn; i++) {
    if (dist[i].size() == k) sol = min(sol, sum[i]);
  }
  printf("%d\n", sol);
  return 0;
}
