#include <stdio.h>
#include <stdlib.h>
 
void swap(int *a, int *b){
    int tmp;
    tmp = *a;
    *a = *b;
    *b = tmp;
}
 
int getMax(int a[], int n){
    int i,ret=0;
    for(i=1;i<n;i++){
        if(a[ret]<a[i]) ret = i;
    }
    return ret;
}
 
int solve(){
    int ret = 0;
    int n,q,i,x;
    int *d;
    scanf("%d %d",&n,&q);
    d = (int*)malloc(sizeof(int)*n);
    if(d==NULL){
        printf("ERROR\n");
        return -1;
    }
    for(i=0;i<n;i++){
        scanf("%d",&d[i]);
    }
    for(i=0;i<q;i++){
        x = getMax(d,n);
        d[x] /= 2; //d[n-1] = d[n-1]/2;
    }
    for(i=0;i<n;i++){
        ret += d[i];
    }
    free(d);
    return ret;
}
 
int main(void){
    printf("%d\n",solve());
    return 0;
}