/* Authors: Vu Hoang Bach from Phuoc Hoa Secondary School */
/* Enjoy TheFatRat's music while reading my code. Link: https://w...content-available-to-author-only...e.com/watch?v=GCx9FU59FJc&t=669s */
//#pragma GCC optimize("O3", "unroll-loops")
//#pragma GCC target("avx2", "bmi", "bmi2", "lzcnt", "popcnt")
#include <bits/stdc++.h>
#define ldb long double
//#define double ldb
#define db double
#define name "test"
#define unomap unordered_map
#define unoset unordered_set
#define endl '\n'
#define str string
#define strstr stringstream
#define sz(a) a.size()
#define ll long long
//#define int ll
#define pii pair <int, int>
#define pll pair <ll, ll>
#define Unique(a) a.resize(unique(all(a)) - a.begin())
#define ull unsigned ll
#define fir first
#define sec second
#define idc cin.ignore()
#define lb lower_bound
#define ub upper_bound
#define all(s) s.begin(), s.end()
#define rev reverse
#define sigma ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
#define skibidi int main
#define rizz signed main
#define gcd __gcd
#define found(a, mp) mp.find(a) != mp.end()
#define game_over exit(0);
#define stfu return 0;
#define stop break;
#define odd(n) n & 1
#define pushb push_back
#define popb pop_back
#define pushf push_front
#define popf pop_front
#define even(n) !odd(n)
#define mul2x(a, x) a << x
#define div2x(a, x) a >> x
#define no_check continue;
#define lcm(a, b) a / __gcd(a, b) * b
#define log_base(x, base) log(x) / log(base)
#define debug clog << "No errors!"; game_over;
#define forw(i, a, b) for (int i = a; i <= b; ++i)
#define forw2(i, a, b) for (ll i = a; i <= b; ++i)
#define fors(i, a, b) for (int i = a; i >= b; --i)
#define fors2(i, a, b) for (ll i = a; i >= b; --i)
#define meme memset
#define pqueue priority_queue
#define want_digit(x) cout << fixed << setprecision(x);
#define excuting_time 1000.0 * clock() / CLOCKS_PER_SEC
using namespace std;
const int MOD = 1e9 + 7; // 998244353
const int inf = 1e9;
const ll INF = 1e18;
const int N = 2e5;
mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());
ll random(const ll &L, const ll &R)
{
return uniform_int_distribution<ll> (L, R) (rng);
}
int n, k, a[N + 5];
multiset <int> ms;
vector <ll> comp;
int calc_comp(const ll &x)
{
return lb(all(comp), x) - comp.begin() + 1;
}
void compress()
{
forw (i, 1, n) comp.pushb(a[i]);
sort(all(comp));
Unique(comp);
forw (i, 1, n)
a[i] = calc_comp(a[i]);
}
pair <int, ll> add(const pair <int, ll> &x, const pair <int, ll> &y)
{
pair <int, ll> res = {x.fir + y.fir, x.sec + y.sec};
return res;
}
pair <int, ll> tree[N * 4 + 5];
void update(int id, int l, int r, int pos, int val)
{
if (l > pos || pos > r) return;
if (l == r)
{
tree[id].fir += val;
tree[id].sec = (ll) tree[id].fir * (ll) comp[pos - 1];
return;
}
int mid = (l + r) / 2;
update(id * 2, l, mid, pos, val);
update(id * 2 + 1, mid + 1, r, pos, val);
tree[id] = add(tree[id * 2], tree[id * 2 + 1]);
}
pair <int, ll> get(int id, int l, int r, int sta, int fin)
{
if (l > fin || sta > r) return pii(0, 0);
if (sta <= l && r <= fin) return tree[id];
int mid = (l + r) / 2;
return add(get(id * 2, l, mid, sta, fin), get(id * 2 + 1, mid + 1, r, sta, fin));
}
int calc_med()
{
multiset <int>::iterator it = ms.begin();
forw (j, 1, (k + 1) / 2 - 1) ++it;
int med = *it;
return med;
}
ll calc(int med)
{
int compressed_med = calc_comp(med);
pair <int, ll> lower = get(1, 1, n, 1, compressed_med - 1), upper = get(1, 1, n, compressed_med + 1, n);
ll res = (ll) med * (ll) lower.fir - lower.sec;
res += upper.sec - (ll) med * (ll) upper.fir;
return res;
}
void print(multiset <int> se)
{
while (!se.empty())
{
cout << *se.begin() << ' ';
se.erase(se.begin());
}
cout << endl;
}
void cook()
{
cin >> n >> k;
forw (i, 1, n) cin >> a[i];
compress();
meme(tree, 0, sizeof(tree));
forw (i, 1, k)
{
ms.insert(comp[a[i] - 1]);
update(1, 1, n, a[i], 1);
}
// print(ms);
cout << calc(calc_med()) << ' ';
forw (i, k + 1, n)
{
ms.erase(ms.find(comp[a[i - k] - 1]));
update(1, 1, n, a[i - k], -1);
ms.insert(comp[a[i] - 1]);
update(1, 1, n, a[i], 1);
// print(ms);
cout << calc(calc_med()) << ' ';
}
cout << endl;
}
/*
10 5
4 6 10 4 3 8 8 10 8 9
*/
skibidi()
//rizz()
{
srand(time(NULL));
sigma;
/*
if (fopen(name".INP", "r"))
{
freopen(name".INP", "r", stdin);
freopen(name".OUT", "w", stdout);
}
*/
int numTest = 1;
// cin >> numTest;
while (numTest--)
{
cook();
}
stfu;
}
LyogQXV0aG9yczogVnUgSG9hbmcgQmFjaCBmcm9tIFBodW9jIEhvYSBTZWNvbmRhcnkgU2Nob29sICovCi8qIEVuam95IFRoZUZhdFJhdCdzIG11c2ljIHdoaWxlIHJlYWRpbmcgbXkgY29kZS4gTGluazogaHR0cHM6Ly93Li4uY29udGVudC1hdmFpbGFibGUtdG8tYXV0aG9yLW9ubHkuLi5lLmNvbS93YXRjaD92PUdDeDlGVTU5RkpjJnQ9NjY5cyAqLwoKLy8jcHJhZ21hIEdDQyBvcHRpbWl6ZSgiTzMiLCAidW5yb2xsLWxvb3BzIikKLy8jcHJhZ21hIEdDQyB0YXJnZXQoImF2eDIiLCAiYm1pIiwgImJtaTIiLCAibHpjbnQiLCAicG9wY250IikKCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxkYiBsb25nIGRvdWJsZQovLyNkZWZpbmUgZG91YmxlIGxkYgojZGVmaW5lIGRiIGRvdWJsZQojZGVmaW5lIG5hbWUgInRlc3QiCiNkZWZpbmUgdW5vbWFwIHVub3JkZXJlZF9tYXAKI2RlZmluZSB1bm9zZXQgdW5vcmRlcmVkX3NldAojZGVmaW5lIGVuZGwgJ1xuJwojZGVmaW5lIHN0ciBzdHJpbmcKI2RlZmluZSBzdHJzdHIgc3RyaW5nc3RyZWFtCiNkZWZpbmUgc3ooYSkgYS5zaXplKCkKI2RlZmluZSBsbCBsb25nIGxvbmcKLy8jZGVmaW5lIGludCBsbAojZGVmaW5lIHBpaSBwYWlyIDxpbnQsIGludD4KI2RlZmluZSBwbGwgcGFpciA8bGwsIGxsPgojZGVmaW5lIFVuaXF1ZShhKSBhLnJlc2l6ZSh1bmlxdWUoYWxsKGEpKSAtIGEuYmVnaW4oKSkKI2RlZmluZSB1bGwgdW5zaWduZWQgbGwKI2RlZmluZSBmaXIgZmlyc3QKI2RlZmluZSBzZWMgc2Vjb25kCiNkZWZpbmUgaWRjIGNpbi5pZ25vcmUoKQojZGVmaW5lIGxiIGxvd2VyX2JvdW5kCiNkZWZpbmUgdWIgdXBwZXJfYm91bmQKI2RlZmluZSBhbGwocykgcy5iZWdpbigpLCBzLmVuZCgpCiNkZWZpbmUgcmV2IHJldmVyc2UKI2RlZmluZSBzaWdtYSBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApLCBjaW4udGllKDApLCBjb3V0LnRpZSgwKTsKI2RlZmluZSBza2liaWRpIGludCBtYWluCiNkZWZpbmUgcml6eiBzaWduZWQgbWFpbgojZGVmaW5lIGdjZCBfX2djZAojZGVmaW5lIGZvdW5kKGEsIG1wKSBtcC5maW5kKGEpICE9IG1wLmVuZCgpCiNkZWZpbmUgZ2FtZV9vdmVyIGV4aXQoMCk7CiNkZWZpbmUgc3RmdSByZXR1cm4gMDsKI2RlZmluZSBzdG9wIGJyZWFrOwojZGVmaW5lIG9kZChuKSBuICYgMQojZGVmaW5lIHB1c2hiIHB1c2hfYmFjawojZGVmaW5lIHBvcGIgcG9wX2JhY2sKI2RlZmluZSBwdXNoZiBwdXNoX2Zyb250CiNkZWZpbmUgcG9wZiBwb3BfZnJvbnQKI2RlZmluZSBldmVuKG4pICFvZGQobikKI2RlZmluZSBtdWwyeChhLCB4KSBhIDw8IHgKI2RlZmluZSBkaXYyeChhLCB4KSBhID4+IHgKI2RlZmluZSBub19jaGVjayBjb250aW51ZTsKI2RlZmluZSBsY20oYSwgYikgYSAvIF9fZ2NkKGEsIGIpICogYgojZGVmaW5lIGxvZ19iYXNlKHgsIGJhc2UpIGxvZyh4KSAvIGxvZyhiYXNlKQojZGVmaW5lIGRlYnVnIGNsb2cgPDwgIk5vIGVycm9ycyEiOyBnYW1lX292ZXI7CiNkZWZpbmUgZm9ydyhpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA8PSBiOyArK2kpCiNkZWZpbmUgZm9ydzIoaSwgYSwgYikgZm9yIChsbCBpID0gYTsgaSA8PSBiOyArK2kpCiNkZWZpbmUgZm9ycyhpLCBhLCBiKSBmb3IgKGludCBpID0gYTsgaSA+PSBiOyAtLWkpCiNkZWZpbmUgZm9yczIoaSwgYSwgYikgZm9yIChsbCBpID0gYTsgaSA+PSBiOyAtLWkpCiNkZWZpbmUgbWVtZSBtZW1zZXQKI2RlZmluZSBwcXVldWUgcHJpb3JpdHlfcXVldWUKI2RlZmluZSB3YW50X2RpZ2l0KHgpIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKHgpOwojZGVmaW5lIGV4Y3V0aW5nX3RpbWUgMTAwMC4wICogY2xvY2soKSAvIENMT0NLU19QRVJfU0VDCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmNvbnN0IGludCBNT0QgPSAxZTkgKyA3OyAvLyA5OTgyNDQzNTMKY29uc3QgaW50IGluZiA9IDFlOTsKY29uc3QgbGwgSU5GID0gMWUxODsKY29uc3QgaW50IE4gPSAyZTU7CgptdDE5OTM3XzY0IHJuZyhjaHJvbm86OnN0ZWFkeV9jbG9jazo6bm93KCkudGltZV9zaW5jZV9lcG9jaCgpLmNvdW50KCkpOwpsbCByYW5kb20oY29uc3QgbGwgJkwsIGNvbnN0IGxsICZSKQp7CiAgICByZXR1cm4gdW5pZm9ybV9pbnRfZGlzdHJpYnV0aW9uPGxsPiAoTCwgUikgKHJuZyk7Cn0KCmludCBuLCBrLCBhW04gKyA1XTsKbXVsdGlzZXQgPGludD4gbXM7Cgp2ZWN0b3IgPGxsPiBjb21wOwoKaW50IGNhbGNfY29tcChjb25zdCBsbCAmeCkKewogICAgcmV0dXJuIGxiKGFsbChjb21wKSwgeCkgLSBjb21wLmJlZ2luKCkgKyAxOwp9Cgp2b2lkIGNvbXByZXNzKCkKewogICAgZm9ydyAoaSwgMSwgbikgY29tcC5wdXNoYihhW2ldKTsKICAgIHNvcnQoYWxsKGNvbXApKTsKICAgIFVuaXF1ZShjb21wKTsKICAgIGZvcncgKGksIDEsIG4pCiAgICAgICAgYVtpXSA9IGNhbGNfY29tcChhW2ldKTsKfQoKcGFpciA8aW50LCBsbD4gYWRkKGNvbnN0IHBhaXIgPGludCwgbGw+ICZ4LCBjb25zdCBwYWlyIDxpbnQsIGxsPiAmeSkKewogICAgcGFpciA8aW50LCBsbD4gcmVzID0ge3guZmlyICsgeS5maXIsIHguc2VjICsgeS5zZWN9OwogICAgcmV0dXJuIHJlczsKfQoKcGFpciA8aW50LCBsbD4gdHJlZVtOICogNCArIDVdOwp2b2lkIHVwZGF0ZShpbnQgaWQsIGludCBsLCBpbnQgciwgaW50IHBvcywgaW50IHZhbCkKewogICAgaWYgKGwgPiBwb3MgfHwgcG9zID4gcikgcmV0dXJuOwogICAgaWYgKGwgPT0gcikKICAgIHsKICAgICAgICB0cmVlW2lkXS5maXIgKz0gdmFsOwogICAgICAgIHRyZWVbaWRdLnNlYyA9IChsbCkgdHJlZVtpZF0uZmlyICogKGxsKSBjb21wW3BvcyAtIDFdOwogICAgICAgIHJldHVybjsKICAgIH0KCiAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICB1cGRhdGUoaWQgKiAyLCBsLCBtaWQsIHBvcywgdmFsKTsKICAgIHVwZGF0ZShpZCAqIDIgKyAxLCBtaWQgKyAxLCByLCBwb3MsIHZhbCk7CiAgICB0cmVlW2lkXSA9IGFkZCh0cmVlW2lkICogMl0sIHRyZWVbaWQgKiAyICsgMV0pOwp9CgpwYWlyIDxpbnQsIGxsPiBnZXQoaW50IGlkLCBpbnQgbCwgaW50IHIsIGludCBzdGEsIGludCBmaW4pCnsKICAgIGlmIChsID4gZmluIHx8IHN0YSA+IHIpIHJldHVybiBwaWkoMCwgMCk7CiAgICBpZiAoc3RhIDw9IGwgJiYgciA8PSBmaW4pIHJldHVybiB0cmVlW2lkXTsKCiAgICBpbnQgbWlkID0gKGwgKyByKSAvIDI7CiAgICByZXR1cm4gYWRkKGdldChpZCAqIDIsIGwsIG1pZCwgc3RhLCBmaW4pLCBnZXQoaWQgKiAyICsgMSwgbWlkICsgMSwgciwgc3RhLCBmaW4pKTsKfQoKaW50IGNhbGNfbWVkKCkKewogICAgbXVsdGlzZXQgPGludD46Oml0ZXJhdG9yIGl0ID0gbXMuYmVnaW4oKTsKICAgIGZvcncgKGosIDEsIChrICsgMSkgLyAyIC0gMSkgKytpdDsKICAgIGludCBtZWQgPSAqaXQ7CiAgICByZXR1cm4gbWVkOwp9CgpsbCBjYWxjKGludCBtZWQpCnsKICAgIGludCBjb21wcmVzc2VkX21lZCA9IGNhbGNfY29tcChtZWQpOwogICAgcGFpciA8aW50LCBsbD4gbG93ZXIgPSBnZXQoMSwgMSwgbiwgMSwgY29tcHJlc3NlZF9tZWQgLSAxKSwgdXBwZXIgPSBnZXQoMSwgMSwgbiwgY29tcHJlc3NlZF9tZWQgKyAxLCBuKTsKICAgIGxsIHJlcyA9IChsbCkgbWVkICogKGxsKSBsb3dlci5maXIgLSBsb3dlci5zZWM7CiAgICByZXMgKz0gdXBwZXIuc2VjIC0gKGxsKSBtZWQgKiAobGwpIHVwcGVyLmZpcjsKICAgIHJldHVybiByZXM7Cn0KCnZvaWQgcHJpbnQobXVsdGlzZXQgPGludD4gc2UpCnsKICAgIHdoaWxlICghc2UuZW1wdHkoKSkKICAgIHsKICAgICAgICBjb3V0IDw8ICpzZS5iZWdpbigpIDw8ICcgJzsKICAgICAgICBzZS5lcmFzZShzZS5iZWdpbigpKTsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKfQoKdm9pZCBjb29rKCkKewogICAgY2luID4+IG4gPj4gazsKICAgIGZvcncgKGksIDEsIG4pIGNpbiA+PiBhW2ldOwogICAgY29tcHJlc3MoKTsKCiAgICBtZW1lKHRyZWUsIDAsIHNpemVvZih0cmVlKSk7CgogICAgZm9ydyAoaSwgMSwgaykKICAgIHsKICAgICAgICBtcy5pbnNlcnQoY29tcFthW2ldIC0gMV0pOwogICAgICAgIHVwZGF0ZSgxLCAxLCBuLCBhW2ldLCAxKTsKICAgIH0KCi8vICAgIHByaW50KG1zKTsKCiAgICBjb3V0IDw8IGNhbGMoY2FsY19tZWQoKSkgPDwgJyAnOwoKICAgIGZvcncgKGksIGsgKyAxLCBuKQogICAgewogICAgICAgIG1zLmVyYXNlKG1zLmZpbmQoY29tcFthW2kgLSBrXSAtIDFdKSk7CiAgICAgICAgdXBkYXRlKDEsIDEsIG4sIGFbaSAtIGtdLCAtMSk7CgogICAgICAgIG1zLmluc2VydChjb21wW2FbaV0gLSAxXSk7CiAgICAgICAgdXBkYXRlKDEsIDEsIG4sIGFbaV0sIDEpOwoKLy8gICAgICAgIHByaW50KG1zKTsKCiAgICAgICAgY291dCA8PCBjYWxjKGNhbGNfbWVkKCkpIDw8ICcgJzsKICAgIH0KICAgIGNvdXQgPDwgZW5kbDsKfQoKLyoKMTAgNQo0IDYgMTAgNCAzIDggOCAxMCA4IDkKKi8KCnNraWJpZGkoKQovL3JpenooKQp7CiAgICBzcmFuZCh0aW1lKE5VTEwpKTsKICAgIHNpZ21hOwogICAgLyoKICAgIGlmIChmb3BlbihuYW1lIi5JTlAiLCAiciIpKQogICAgewogICAgICAgIGZyZW9wZW4obmFtZSIuSU5QIiwgInIiLCBzdGRpbik7CiAgICAgICAgZnJlb3BlbihuYW1lIi5PVVQiLCAidyIsIHN0ZG91dCk7CiAgICB9CiAgICAqLwogICAgaW50IG51bVRlc3QgPSAxOwovLyAgICBjaW4gPj4gbnVtVGVzdDsKICAgIHdoaWxlIChudW1UZXN0LS0pCiAgICB7CiAgICAgICAgY29vaygpOwogICAgfQogICAgc3RmdTsKfQ==