#include <iostream>
#include <algorithm>
#include <set>
#include <vector>
using namespace std;
struct T {
const int k, p;
long long m, s, S;
multiset<int> l, b;
T(vector<int> v) : k{v.size()}, p{k / 2}, s{}, S{} {
sort(v.begin(), v.end());
for (int i{0}; i < p; ++i) {
s += v[i];
l.insert(v[i]);
}
m = v[p];
for (int i{p + 1}; i < k; ++i) {
S += v[i];
b.insert(v[i]);
}
}
void delete_and_add(int x, int y) {
if (x == y) return;
if (max(x, y) <= m) {
l.erase(l.find(x));
l.insert(y);
s += y - x;
} else if (m <= min(x, y)) {
b.erase(b.find(x));
b.insert(y);
S += y - x;
} else if (x < y) {
l.erase(l.find(x));
l.insert(m);
s += m - x;
m = *b.begin();
b.erase(b.begin());
b.insert(y);
S += y - m;
} else {
b.erase(b.find(x));
b.insert(m);
S += m - x;
m = *prev(l.end());
l.erase(prev(l.end()));
l.insert(y);
S += y - m;
}
}
long long med() const {
return m * k - s + S;
}
};
int main() {
ios_base::sync_with_stdio(false);
int n, k;
cin >> n >> k;
if (k == 1) {
cout << 0 << endl;
return 0;
}
vector<int> h(n);
for (auto& x: h) {
cin >> x;
}
if (k == 2) {
int res{abs(h[0] - h[1])};
for (int i{1}; i < n - 1; ++i) {
res = min(res, abs(h[i] - h[i + 1]));
}
cout << res << endl;
return 0;
}
T t(vector<int>(h.begin(), h.begin() + k));
long long res{t.med()};
return 0;
for (int i{k}; k < n; ++i) {
t.delete_and_add(h[i - k], h[i]);
res = min(res, t.med());
}
cout << res << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8YWxnb3JpdGhtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnN0cnVjdCBUIHsKCWNvbnN0IGludCBrLCBwOwoJbG9uZyBsb25nIG0sIHMsIFM7CgltdWx0aXNldDxpbnQ+IGwsIGI7CgoKCVQodmVjdG9yPGludD4gdikgOiBre3Yuc2l6ZSgpfSwgcHtrIC8gMn0sIHN7fSwgU3t9IHsKCQlzb3J0KHYuYmVnaW4oKSwgdi5lbmQoKSk7CgoJCWZvciAoaW50IGl7MH07IGkgPCBwOyArK2kpIHsKCQkJcyArPSB2W2ldOwoJCQlsLmluc2VydCh2W2ldKTsKCQl9CgoJCW0gPSB2W3BdOwoKCQlmb3IgKGludCBpe3AgKyAxfTsgaSA8IGs7ICsraSkgewoJCQlTICs9IHZbaV07CgkJCWIuaW5zZXJ0KHZbaV0pOwoJCX0KCX0KCgl2b2lkIGRlbGV0ZV9hbmRfYWRkKGludCB4LCBpbnQgeSkgewoJCWlmICh4ID09IHkpIHJldHVybjsKCgkJaWYgKG1heCh4LCB5KSA8PSBtKSB7CgkJCWwuZXJhc2UobC5maW5kKHgpKTsKCQkJbC5pbnNlcnQoeSk7CgkJCXMgKz0geSAtIHg7CgkJfSBlbHNlIGlmIChtIDw9IG1pbih4LCB5KSkgewoJCQliLmVyYXNlKGIuZmluZCh4KSk7CgkJCWIuaW5zZXJ0KHkpOwoJCQlTICs9IHkgLSB4OwoJCX0gZWxzZSBpZiAoeCA8IHkpIHsKCQkJbC5lcmFzZShsLmZpbmQoeCkpOwoJCQlsLmluc2VydChtKTsKCQkJcyArPSBtIC0geDsKCQkJbSA9ICpiLmJlZ2luKCk7CgkJCWIuZXJhc2UoYi5iZWdpbigpKTsKCQkJYi5pbnNlcnQoeSk7CgkJCVMgKz0geSAtIG07CgkJfSBlbHNlIHsKCQkJYi5lcmFzZShiLmZpbmQoeCkpOwoJCQliLmluc2VydChtKTsKCQkJUyArPSBtIC0geDsKCQkJbSA9ICpwcmV2KGwuZW5kKCkpOwoJCQlsLmVyYXNlKHByZXYobC5lbmQoKSkpOwoJCQlsLmluc2VydCh5KTsKCQkJUyArPSB5IC0gbTsKCQl9Cgl9CgoJbG9uZyBsb25nIG1lZCgpIGNvbnN0IHsKCQlyZXR1cm4gbSAqIGsgLSBzICsgUzsKCX0KfTsKCmludCBtYWluKCkgewoJaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CgoJaW50IG4sIGs7CgoJY2luID4+IG4gPj4gazsKCglpZiAoayA9PSAxKSB7CgkJY291dCA8PCAwIDw8IGVuZGw7CgoJCXJldHVybiAwOwoJfQoKCXZlY3RvcjxpbnQ+IGgobik7CgoJZm9yIChhdXRvJiB4OiBoKSB7CgkJY2luID4+IHg7Cgl9CgoJaWYgKGsgPT0gMikgewoJCWludCByZXN7YWJzKGhbMF0gLSBoWzFdKX07CgoJCWZvciAoaW50IGl7MX07IGkgPCBuIC0gMTsgKytpKSB7CgkJCXJlcyA9IG1pbihyZXMsIGFicyhoW2ldIC0gaFtpICsgMV0pKTsKCQl9CgoJCWNvdXQgPDwgcmVzIDw8IGVuZGw7CgoJCXJldHVybiAwOwoJfQoJCgkKCglUIHQodmVjdG9yPGludD4oaC5iZWdpbigpLCBoLmJlZ2luKCkgKyBrKSk7CgoJbG9uZyBsb25nIHJlc3t0Lm1lZCgpfTsKCQoJcmV0dXJuIDA7CgoJZm9yIChpbnQgaXtrfTsgayA8IG47ICsraSkgewoJCXQuZGVsZXRlX2FuZF9hZGQoaFtpIC0ga10sIGhbaV0pOwoJCXJlcyA9IG1pbihyZXMsIHQubWVkKCkpOwoJfQoKCWNvdXQgPDwgcmVzIDw8IGVuZGw7CgoJcmV0dXJuIDA7Cn0=