#include <stdio.h>
#include <stdlib.h>
#define MAXN 100010
int heap[MAXN];
int sz = 0;
void swap(int *x, int *y){
int tmp = *x;
*x = *y;
*y = tmp;
}
void push(int x){
heap[++sz] = x;
int i = sz;
while(i > 1 && heap[i] > heap[i/2]){
swap(&heap[i], &heap[i/2]);
i /= 2;
}
}
int pop(){
if(sz == 0) return 0;
int ret = heap[1];
heap[1] = heap[sz--];
int i = 1;
while(1){
int left = i * 2;
int right = i * 2 + 1;
int largest = i;
if(left <= sz && heap[left] > heap[largest]) largest = left;
if(right <= sz && heap[right] > heap[largest]) largest = right;
if(largest == i) break;
swap(&heap[i], &heap[largest]);
i = largest;
}
return ret;
}
int solve(){
int n, q;
for(int i = 0; i < n; i++){
int d;
push(d);
}
for(int i = 0; i < q; i++){
int top = pop();
top /= 2;
if(top > 0) push(top);
}
int ret = 0;
for(int i = 1; i <= sz; i++){
ret += heap[i];
}
return ret;
}
int main(void){
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4KCiNkZWZpbmUgTUFYTiAxMDAwMTAKCmludCBoZWFwW01BWE5dOwppbnQgc3ogPSAwOwoKdm9pZCBzd2FwKGludCAqeCwgaW50ICp5KXsKICAgIGludCB0bXAgPSAqeDsKICAgICp4ID0gKnk7CiAgICAqeSA9IHRtcDsKfQoKdm9pZCBwdXNoKGludCB4KXsKICAgIGhlYXBbKytzel0gPSB4OwogICAgaW50IGkgPSBzejsKICAgIHdoaWxlKGkgPiAxICYmIGhlYXBbaV0gPiBoZWFwW2kvMl0pewogICAgICAgIHN3YXAoJmhlYXBbaV0sICZoZWFwW2kvMl0pOwogICAgICAgIGkgLz0gMjsKICAgIH0KfQoKaW50IHBvcCgpewogICAgaWYoc3ogPT0gMCkgcmV0dXJuIDA7CiAgICBpbnQgcmV0ID0gaGVhcFsxXTsKICAgIGhlYXBbMV0gPSBoZWFwW3N6LS1dOwoKICAgIGludCBpID0gMTsKICAgIHdoaWxlKDEpewogICAgICAgIGludCBsZWZ0ID0gaSAqIDI7CiAgICAgICAgaW50IHJpZ2h0ID0gaSAqIDIgKyAxOwogICAgICAgIGludCBsYXJnZXN0ID0gaTsKCiAgICAgICAgaWYobGVmdCA8PSBzeiAmJiBoZWFwW2xlZnRdID4gaGVhcFtsYXJnZXN0XSkgbGFyZ2VzdCA9IGxlZnQ7CiAgICAgICAgaWYocmlnaHQgPD0gc3ogJiYgaGVhcFtyaWdodF0gPiBoZWFwW2xhcmdlc3RdKSBsYXJnZXN0ID0gcmlnaHQ7CgogICAgICAgIGlmKGxhcmdlc3QgPT0gaSkgYnJlYWs7CgogICAgICAgIHN3YXAoJmhlYXBbaV0sICZoZWFwW2xhcmdlc3RdKTsKICAgICAgICBpID0gbGFyZ2VzdDsKICAgIH0KCiAgICByZXR1cm4gcmV0Owp9CgppbnQgc29sdmUoKXsKICAgIGludCBuLCBxOwogICAgc2NhbmYoIiVkICVkIiwgJm4sICZxKTsKCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgbjsgaSsrKXsKICAgICAgICBpbnQgZDsKICAgICAgICBzY2FuZigiJWQiLCAmZCk7CiAgICAgICAgcHVzaChkKTsKICAgIH0KCiAgICBmb3IoaW50IGkgPSAwOyBpIDwgcTsgaSsrKXsKICAgICAgICBpbnQgdG9wID0gcG9wKCk7CiAgICAgICAgdG9wIC89IDI7CiAgICAgICAgaWYodG9wID4gMCkgcHVzaCh0b3ApOwogICAgfQoKICAgIGludCByZXQgPSAwOwogICAgZm9yKGludCBpID0gMTsgaSA8PSBzejsgaSsrKXsKICAgICAgICByZXQgKz0gaGVhcFtpXTsKICAgIH0KCiAgICByZXR1cm4gcmV0Owp9CgppbnQgbWFpbih2b2lkKXsKICAgIHByaW50ZigiJWRcbiIsIHNvbHZlKCkpOwogICAgcmV0dXJuIDA7Cn0=