#include <bits/stdc++.h>
using namespace std;
#define int long long int
#define double long double
#define print(a) for(auto x : a) cout << x << " "; cout << endl
inline int power(int a, int b) {
int x = 1;
while (b) {
if (b & 1) x *= a;
a *= a;
b >>= 1;
}
return x;
}
const int M = 1000000007;
const int N = 3e5+9;
const int INF = 2e9+1;
const int LINF = 2000000000000000001;
//_ ***************************** START Below *******************************
typedef pair<int,int> pii;
vector<int> a;
void rebalance(set<pii, greater<pii>>& leftMax, set<pii>& rightMin, int& leftSum, int& rightSum){
if(leftMax.size() > rightMin.size()){
auto left = *leftMax.begin();
leftMax.erase(left);
leftSum -= left.first;
rightSum += left.first;
rightMin.insert(left);
}
else if(rightMin.size() > leftMax.size()+1){
auto right = *rightMin.begin();
rightMin.erase(right);
rightSum -= right.first;
leftSum += right.first;
leftMax.insert(right);
}
if(!leftMax.empty() && !rightMin.empty() && leftMax.begin()->first > rightMin.begin()->first ){
auto left = *leftMax.begin();
auto right = *rightMin.begin();
leftMax.erase(left);
rightMin.erase(right);
leftSum -= left.first;
rightSum -= right.first;
leftMax.insert(right);
leftSum += right.first;
rightMin.insert(left);
rightSum += left.first;
}
}
vector<int> consistency(int n, int k) {
vector<int> ans;
set<pii> rightMin;
int rightSum = 0;
set<pii, greater<pii> > leftMax;
int leftSum = 0;
int s = 0, e = 0;
while(e<n){
leftSum += a[e];
leftMax.insert({a[e], e});
rebalance(leftMax, rightMin, leftSum, rightSum);
if(e-s+1 < k){
e++;
}
else{
auto left = *leftMax.begin();
auto right = *rightMin.begin();
int x = left.first;
int y = right.first;
int m = y;
if( !(k&1) ) m = (x+y)/2;
int cost = (k/2) * m - leftSum;
cost += rightSum - ((k+1)/2) * m;
ans.push_back(cost);
if(leftMax.count({a[s], s})){
leftMax.erase({a[s], s});
leftSum -= a[s];
}
else{
rightMin.erase({a[s], s});
rightSum -= a[s];
}
rebalance(leftMax, rightMin, leftSum, rightSum);
s++;
e++;
}
}
return ans;
}
// typedef pair<int,int> pii;
vector<int> practice(int n, int k) {
}
void solve() {
int n, k;
cin>>n >> k;
a.resize(n);
for(int i=0; i<n; i++) cin >> a[i];
auto ans1 = consistency(n, k);
for(auto& it : ans1 ) cout << it << " "; cout << endl;
// auto p = practice(n, k);
// for(auto& t : p) cout << t << " "; cout << endl;
}
int32_t main() {
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t = 1;
while (t--) {
solve();
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgaW50ICAgICAgICAgICAgICBsb25nIGxvbmcgaW50CiNkZWZpbmUgZG91YmxlICAgICAgICAgICBsb25nIGRvdWJsZQojZGVmaW5lIHByaW50KGEpICAgICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeCA8PCAiICI7IGNvdXQgPDwgZW5kbAppbmxpbmUgaW50IHBvd2VyKGludCBhLCBpbnQgYikgewogICAgaW50IHggPSAxOwogICAgd2hpbGUgKGIpIHsKICAgICAgICBpZiAoYiAmIDEpIHggKj0gYTsKICAgICAgICBhICo9IGE7CiAgICAgICAgYiA+Pj0gMTsKICAgIH0KICAgIHJldHVybiB4Owp9CgoKY29uc3QgaW50IE0gPSAxMDAwMDAwMDA3Owpjb25zdCBpbnQgTiA9IDNlNSs5Owpjb25zdCBpbnQgSU5GID0gMmU5KzE7CmNvbnN0IGludCBMSU5GID0gMjAwMDAwMDAwMDAwMDAwMDAwMTsKCi8vXyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiBTVEFSVCBCZWxvdyAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqCgoKCnR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7Cgp2ZWN0b3I8aW50PiBhOwoKCnZvaWQgcmViYWxhbmNlKHNldDxwaWksIGdyZWF0ZXI8cGlpPj4mIGxlZnRNYXgsIHNldDxwaWk+JiByaWdodE1pbiwgaW50JiBsZWZ0U3VtLCBpbnQmIHJpZ2h0U3VtKXsKCQoJaWYobGVmdE1heC5zaXplKCkgPiByaWdodE1pbi5zaXplKCkpewoJCWF1dG8gbGVmdCA9ICpsZWZ0TWF4LmJlZ2luKCk7CgkJbGVmdE1heC5lcmFzZShsZWZ0KTsKCQkKCQlsZWZ0U3VtIC09IGxlZnQuZmlyc3Q7CgkJcmlnaHRTdW0gKz0gbGVmdC5maXJzdDsKCQkKCQlyaWdodE1pbi5pbnNlcnQobGVmdCk7Cgl9CgllbHNlIGlmKHJpZ2h0TWluLnNpemUoKSA+IGxlZnRNYXguc2l6ZSgpKzEpewoJCWF1dG8gcmlnaHQgPSAqcmlnaHRNaW4uYmVnaW4oKTsKCQlyaWdodE1pbi5lcmFzZShyaWdodCk7CgkJCgkJcmlnaHRTdW0gLT0gcmlnaHQuZmlyc3Q7CgkJbGVmdFN1bSArPSByaWdodC5maXJzdDsKCQkKCQlsZWZ0TWF4Lmluc2VydChyaWdodCk7Cgl9CgkKCWlmKCFsZWZ0TWF4LmVtcHR5KCkgJiYgIXJpZ2h0TWluLmVtcHR5KCkgJiYgbGVmdE1heC5iZWdpbigpLT5maXJzdCA+IHJpZ2h0TWluLmJlZ2luKCktPmZpcnN0ICl7CgkJYXV0byBsZWZ0ID0gKmxlZnRNYXguYmVnaW4oKTsgCgkJYXV0byByaWdodCA9ICpyaWdodE1pbi5iZWdpbigpOwoJCQoJCQoJCWxlZnRNYXguZXJhc2UobGVmdCk7CgkJcmlnaHRNaW4uZXJhc2UocmlnaHQpOwoJCQoJCWxlZnRTdW0gLT0gbGVmdC5maXJzdDsKCQlyaWdodFN1bSAtPSByaWdodC5maXJzdDsKCQkKCQlsZWZ0TWF4Lmluc2VydChyaWdodCk7CgkJbGVmdFN1bSArPSByaWdodC5maXJzdDsKCQkKCQlyaWdodE1pbi5pbnNlcnQobGVmdCk7CgkJcmlnaHRTdW0gKz0gbGVmdC5maXJzdDsKCX0KCQp9Cgp2ZWN0b3I8aW50PiBjb25zaXN0ZW5jeShpbnQgbiwgaW50IGspIHsKCQoJdmVjdG9yPGludD4gYW5zOwoJCglzZXQ8cGlpPiByaWdodE1pbjsKCWludCByaWdodFN1bSA9IDA7CgkKCXNldDxwaWksIGdyZWF0ZXI8cGlpPiA+IGxlZnRNYXg7CglpbnQgbGVmdFN1bSA9IDA7CgkKCWludCBzID0gMCwgZSA9IDA7Cgl3aGlsZShlPG4pewoJCWxlZnRTdW0gKz0gYVtlXTsKCQlsZWZ0TWF4Lmluc2VydCh7YVtlXSwgZX0pOwoJCXJlYmFsYW5jZShsZWZ0TWF4LCByaWdodE1pbiwgbGVmdFN1bSwgcmlnaHRTdW0pOwoJCQoJCWlmKGUtcysxIDwgayl7CgkJCWUrKzsKCQl9CgkJZWxzZXsKCQkJYXV0byBsZWZ0ID0gKmxlZnRNYXguYmVnaW4oKTsKCQkJYXV0byByaWdodCA9ICpyaWdodE1pbi5iZWdpbigpOwoJCQkKCQkJaW50IHggPSBsZWZ0LmZpcnN0OwoJCQlpbnQgeSA9IHJpZ2h0LmZpcnN0OwoJCQkKCQkJaW50IG0gPSB5OwoJCQlpZiggIShrJjEpICkgbSA9ICh4K3kpLzI7CgkJCQoJCQlpbnQgY29zdCA9IChrLzIpICogbSAtIGxlZnRTdW07CgkJCWNvc3QgKz0gIHJpZ2h0U3VtIC0gKChrKzEpLzIpICogbTsKCQkJCgkJCWFucy5wdXNoX2JhY2soY29zdCk7CgkJCQoJCQlpZihsZWZ0TWF4LmNvdW50KHthW3NdLCBzfSkpewoJCQkJbGVmdE1heC5lcmFzZSh7YVtzXSwgc30pOwoJCQkJbGVmdFN1bSAtPSBhW3NdOwoJCQl9CgkJCWVsc2V7CgkJCQlyaWdodE1pbi5lcmFzZSh7YVtzXSwgc30pOwoJCQkJcmlnaHRTdW0gLT0gYVtzXTsKCQkJfQoJCQlyZWJhbGFuY2UobGVmdE1heCwgcmlnaHRNaW4sIGxlZnRTdW0sIHJpZ2h0U3VtKTsKCQkJCgkJCXMrKzsKCQkJZSsrOwoJCX0KCX0KCQoJcmV0dXJuIGFuczsKCn0KCgoKCgoKCgoKCgoKCgoKCgoKCi8vIHR5cGVkZWYgcGFpcjxpbnQsaW50PiBwaWk7Cgp2ZWN0b3I8aW50PiBwcmFjdGljZShpbnQgbiwgaW50IGspIHsKCQoJCn0KCgoKCgoKCgp2b2lkIHNvbHZlKCkgewogICAgCiAgICBpbnQgbiwgazsKICAgIGNpbj4+biA+PiBrOwoJCglhLnJlc2l6ZShuKTsKICAgIGZvcihpbnQgaT0wOyBpPG47IGkrKykgY2luID4+IGFbaV07CiAgICAKICAgIGF1dG8gYW5zMSA9IGNvbnNpc3RlbmN5KG4sIGspOwogICAgZm9yKGF1dG8mIGl0IDogYW5zMSApCWNvdXQgPDwgaXQgPDwgIiAiOyBjb3V0IDw8IGVuZGw7CiAgICAKICAgIAoJLy8gYXV0byBwID0gcHJhY3RpY2Uobiwgayk7CgkvLyBmb3IoYXV0byYgdCA6IHApIGNvdXQgPDwgdCA8PCAiICI7IGNvdXQgPDwgZW5kbDsKICAgIAoKCn0KCgoKCgppbnQzMl90IG1haW4oKSB7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKCiAgICBpbnQgdCA9IDE7CiAgICB3aGlsZSAodC0tKSB7CiAgICAgICAgc29sdmUoKTsKICAgIH0KCiAgICByZXR1cm4gMDsKfQ==