func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 300005;   const int mod = 998244353;   int n;   long long a[N], b[N], c[N], k, ans = 2e15;   inline long long qpow(long long a, long long b, long long m) {     long long ans = 1ll;     for (; b; b >>= 1, a = a * a % m)       if (b & 1) ans = ans * a % m;     return ans;   }   inline int read() {     int xx = 0, ff = 1;     char ch = getchar();     while (ch >  9  || ch <  0 ) {       if (ch ==  - ) ff = -1;       ch = getchar();     }     while (ch >=  0  && ch <=  9 ) {       xx = xx * 10 + ch -  0 ;       ch = getchar();     }     return xx * ff;   }   inline int gcd(int a, int b) {     while (b ^= a ^= b ^= a %= b)       ;     return a;   }   inline int lcm(int a, int b) { return a / gcd(a, b) * b; }   inline void pre() {     for (int i = 1; i <= n; i++) b[i] = b[i - 1] + a[i];   }   inline void suf() {     for (int i = n; i >= 1; i--) c[i] = c[i + 1] + a[i];   }   inline long long minLL(long long x, long long y) { return x < y ? x : y; }   int main() {     cin >> n >> k;     for (int i = 1; i <= n; i++) cin >> a[i];     sort(a + 1, a + 1 + n);     pre();     suf();     for (int l = 1, r; l <= n; l = r + 1) {       for (r = l; a[r + 1] == a[l]; r++)         ;       if (r - l + 1 >= k) return cout << 0, 0;       long long left = 1ll * (a[l] - 1) * (l - 1) - b[l - 1],                 right = c[r + 1] - 1ll * (a[r] + 1) * (n - r),                 mid = k - r + l - 1;       if (r >= k && left + mid < ans) ans = left + mid;       if (n - l + 1 >= k) ans = min(ans, right + mid);       ans = min(ans, left + right + mid);     }     return cout << ans << endl, 0;   }   