from collections import deque
#input
N,M=map(int,input().strip().split())
A=list(map(int,input().strip().split()))

#M回全て、その時点で一番高価な商品に割引を
#適用した時、支払金額が最小となる。

#安い順にソート
A.sort()

#割引券を一回でも使った商品を格納
dp=deque([])
#割引未適用品(A)と、適用済み品(dp)の最高値を比較し、大きい方に割引を適用
for m in range(M):
    if len(dp)==0:
        tmp=A.pop()
    elif len(A)==0:
        tmp=dp.popleft()
    else:
        if A[-1]>=dp[0]:
            tmp=A.pop()
        else:
            tmp=dp.popleft()
    dp.append(tmp//2)
print(sum(A)+sum(dp)) from collections import deque N,M=map(int,input().strip().split()) N map(int,input().strip().split()) map int input().strip().split() ().strip().split ().strip() ().strip () input strip split M A=list(map(int,input().strip().split())) A list(map(int,input().strip().split())) list map(int,input().strip().split()) map int input().strip().split() ().strip().split ().strip() ().strip () input strip split A.sort() A.sort A sort dp=deque([]) dp deque([]) deque [] for m in range(M):
    if len(dp)==0:
        tmp=A.pop()
    elif len(A)==0:
        tmp=dp.popleft()
    else:
        if A[-1]>=dp[0]:
            tmp=A.pop()
        else:
            tmp=dp.popleft()
    dp.append(tmp//2) m range(M) range M if len(dp)==0:
        tmp=A.pop()
    elif len(A)==0:
        tmp=dp.popleft()
    else:
        if A[-1]>=dp[0]:
            tmp=A.pop()
        else:
            tmp=dp.popleft()
     len(dp)==0 len(dp) len dp 0 tmp=A.pop() tmp A.pop() A.pop A pop elif len(A)==0:
        tmp=dp.popleft()
     len(A)==0 len(A) len A 0 tmp=dp.popleft() tmp dp.popleft() dp.popleft dp popleft if A[-1]>=dp[0]:
            tmp=A.pop()
        else:
            tmp=dp.popleft()
     A[-1]>=dp[0] A[-1] A -1 dp[0] dp 0 tmp=A.pop() tmp A.pop() A.pop A pop tmp=dp.popleft() tmp dp.popleft() dp.popleft dp popleft dp.append(tmp//2) dp.append dp append tmp//2 tmp 2 print(sum(A)+sum(dp)) print sum(A)+sum(dp) sum(A) sum A sum(dp) sum dp A=list(map(int,input().strip().split())) list(map(int,input().strip().split())) A tmp=A.pop() A.pop() tmp M=map(int,input().strip().split()) map(int,input().strip().split()) M tmp=dp.popleft() dp.popleft() tmp tmp=dp.popleft() dp.popleft() tmp tmp=A.pop() A.pop() tmp N,M=map(int,input().strip().split()) map(int,input().strip().split()) N dp=deque([]) deque([]) dp
from collections import deque
#input
N,M=map(int,input().strip().split())
A=list(map(int,input().strip().split()))

#M回全て、その時点で一番高価な商品に割引を
#適用した時、支払金額が最小となる。

#安い順にソート
A.sort()

#割引券を一回でも使った商品を格納
dp=deque([])
#割引未適用品(A)と、適用済み品(dp)の最高値を比較し、大きい方に割引を適用
for m in range(M):
    if len(dp)==0:
        tmp=A.pop()
    elif len(A)==0:
        tmp=dp.popleft()
    else:
        if A[-1]>=dp[0]:
            tmp=A.pop()
        else:
            tmp=dp.popleft()
    dp.append(tmp//2)
print(sum(A)+sum(dp))