#include<bits/stdc++.h>
using namespace std;
#define X first
#define Y second
int main()
{
int n, k;
cin >> n >> k;
int a[n], maxi = INT_MIN;
map<int, int> mp;
for(int i = 0; i < n ; i++)
{
cin >> a[i];
mp[a[i]]++;
}
int ans = INT_MAX;
vector<int> poss;
map<int, int> pushed;
// sort(a, a + n);
map<int, vector<pair<int, int> > > div;
for(auto it = mp.begin(); it != mp.end(); it++)
{
int num = it->first, cnt = 0;
if(pushed.find(num) == pushed.end())
{
poss.push_back(num);
pushed[num] = 1;
}
while(num > 0)
{
num /= 2;
if(pushed.find(num) == pushed.end())
{
poss.push_back(num);
pushed[num] = 1;
}
cnt++;
div[num].push_back(make_pair(it->first, cnt));
}
if(pushed.find(num) == pushed.end())
{
poss.push_back(num);
pushed[num] = 1;
}
div[num].push_back(make_pair(it->first, cnt));
}
// cout << poss.size() << "\n";
sort(poss.begin(), poss.end());
for(int x = 0; x < poss.size(); x++)
{
int i = poss[x];
// cout << "for " << poss[k] << "\n";
if(mp.find(i) == mp.end())
mp[i] = 0;
if(mp[i] >= k)
{
ans = 0;
break;
}
int tot = mp[i], temp = 0, j = 0;
while(tot < k && j < div[i].size())
{
pair<int, int> det = div[i][j];
if(det.X != i)
{
if(tot + mp[det.X] < k)
{
temp += mp[det.X] * det.Y;
tot += mp[det.X];
}
else
{
temp += (min(mp[det.X], k - tot) * det.Y);
tot = k;
}
}
}
if(tot == k)
ans = min(ans, temp);
}
cout << ans << "\n";
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIFggZmlyc3QKI2RlZmluZSBZIHNlY29uZAoKaW50IG1haW4oKQp7CglpbnQgbiwgazsKCgljaW4gPj4gbiA+PiBrOwoKCWludCBhW25dLCBtYXhpID0gSU5UX01JTjsKCgltYXA8aW50LCBpbnQ+IG1wOwoKCWZvcihpbnQgaSA9IDA7IGkgPCBuIDsgaSsrKQoJewoJCWNpbiA+PiBhW2ldOwoKCQltcFthW2ldXSsrOwoJfQoKCWludCBhbnMgPSBJTlRfTUFYOwoJdmVjdG9yPGludD4gcG9zczsKCW1hcDxpbnQsIGludD4gcHVzaGVkOwoKCS8vIHNvcnQoYSwgYSArIG4pOwoKCW1hcDxpbnQsIHZlY3RvcjxwYWlyPGludCwgaW50PiA+ID4gZGl2OwoKCWZvcihhdXRvIGl0ID0gbXAuYmVnaW4oKTsgaXQgIT0gbXAuZW5kKCk7IGl0KyspCgl7CgkJaW50IG51bSA9IGl0LT5maXJzdCwgY250ID0gMDsKCQkKCQlpZihwdXNoZWQuZmluZChudW0pID09IHB1c2hlZC5lbmQoKSkKCQl7CgkJICAgIHBvc3MucHVzaF9iYWNrKG51bSk7CgkJICAgIHB1c2hlZFtudW1dID0gMTsKCQl9CgoJCXdoaWxlKG51bSA+IDApCgkJewoJCQludW0gLz0gMjsKCgkJCWlmKHB1c2hlZC5maW5kKG51bSkgPT0gIHB1c2hlZC5lbmQoKSkKCQkJewoJCQkgICAgcG9zcy5wdXNoX2JhY2sobnVtKTsKCQkJICAgIHB1c2hlZFtudW1dID0gMTsKCQkJfQogICAgICAgICAgICAKCQkJY250Kys7CgkJCWRpdltudW1dLnB1c2hfYmFjayhtYWtlX3BhaXIoaXQtPmZpcnN0LCBjbnQpKTsKCQl9CiAgICAgICAgCiAgICAgICAgaWYocHVzaGVkLmZpbmQobnVtKSA9PSBwdXNoZWQuZW5kKCkpCgkJewoJCSAgICBwb3NzLnB1c2hfYmFjayhudW0pOwoJCSAgICBwdXNoZWRbbnVtXSA9IDE7CgkJfQoJCWRpdltudW1dLnB1c2hfYmFjayhtYWtlX3BhaXIoaXQtPmZpcnN0LCBjbnQpKTsKCX0KICAgIAogICAgLy8gY291dCA8PCBwb3NzLnNpemUoKSA8PCAiXG4iOwogICAgCiAgICBzb3J0KHBvc3MuYmVnaW4oKSwgcG9zcy5lbmQoKSk7CiAgICAKCWZvcihpbnQgeCA9IDA7IHggPCBwb3NzLnNpemUoKTsgeCsrKQoJewoJCWludCBpID0gcG9zc1t4XTsKCQkKLy8gCQljb3V0IDw8ICJmb3IgIiA8PCBwb3NzW2tdIDw8ICJcbiI7CgoJCWlmKG1wLmZpbmQoaSkgPT0gbXAuZW5kKCkpCgkJCW1wW2ldID0gMDsKCgkJaWYobXBbaV0gPj0gaykKCQl7CgkJCWFucyA9IDA7CgkJCWJyZWFrOwoJCX0KCgkJaW50IHRvdCA9IG1wW2ldLCB0ZW1wID0gMCwgaiA9IDA7CgoJCXdoaWxlKHRvdCA8IGsgJiYgaiA8IGRpdltpXS5zaXplKCkpCgkJewoJCQlwYWlyPGludCwgaW50PiBkZXQgPSBkaXZbaV1bal07CgoJCQlpZihkZXQuWCAhPSBpKQoJCQl7CgkJCQlpZih0b3QgKyBtcFtkZXQuWF0gPCBrKQoJCQkJewoJCQkJCXRlbXAgKz0gbXBbZGV0LlhdICogZGV0Llk7CgkJCQkJdG90ICs9IG1wW2RldC5YXTsKCQkJCX0KCQkJCWVsc2UKCQkJCXsKCQkJCQl0ZW1wICs9IChtaW4obXBbZGV0LlhdLCBrIC0gdG90KSAqIGRldC5ZKTsKCQkJCQl0b3QgPSBrOwkKCQkJCX0KCQkJfQoJCX0KCgkJaWYodG90ID09IGspCgkJCWFucyA9IG1pbihhbnMsIHRlbXApOwoJfQoKCWNvdXQgPDwgYW5zIDw8ICJcbiI7CgoJcmV0dXJuIDA7Cn0=