#include <stdio.h>
#include <stdlib.h>

// 課題1 モンスターの防御力を減らせ！ の解答
int solve() {
    int n, q;
    int d[100]; // モンスターの防御力を格納する配列（n<=100のため）
    int i, j, max_idx;
    int sum = 0;

    // 入力: モンスターの数 n と ボールの数 q を読み込む
    if (scanf("%d %d", &n, &q) != 2) return 0;

    // 入力: 各モンスターの防御力 d_i を読み込む
    for (i = 0; i < n; i++) {
        scanf("%d", &d[i]);
    }

    // q 個のボールを順番にぶつける
    for (j = 0; j < q; j++) {
        max_idx = 0;
        // 現在の防御力が最大のモンスターを探す
        for (i = 1; i < n; i++) {
            if (d[i] > d[max_idx]) {
                max_idx = i;
            }
        }
        // 最も防御力が高いモンスターの防御力を半分にする
        // (C言語の整数同士の割り算は、自動的に小数点以下が切り捨てられます)
        d[max_idx] = d[max_idx] / 2;
    }

    // 最終的な防御力の合計を計算する
    for (i = 0; i < n; i++) {
        sum += d[i];
    }

    return sum;
}

int main(void) {
    printf("%d\n", solve());
    return 0;
}