import heapq
N,M = map(int,input().split())
list_A = list(map(int,input().split()))	
list_A = list(map(lambda x: int(x)*(-1),list_A))

#print(list_A)

#heapifyが動作が重い。for文の中に入れるとTLE。
heapq.heapify(list_A) #list_Aを優先度付きキューに
for i in range(M):
  
  target = heapq.heappop(list_A)
  #print("after heappop",list_A)
  
  '''負の要素の切り捨て除算は切り捨てがマイナスの方に
  行くため少しだけややこしい。'''
  target = (-1)*((-target) // 2)
  heapq.heappush(list_A, target)  # 要素の挿入
  #print("No.",i,"change finished",list_A)

print((-1)*sum(list_A))

 import heapq heapq N,M = map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split M list_A = list(map(int,input().split())) list_A list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split list_A = list(map(lambda x: int(x)*(-1),list_A)) list_A list(map(lambda x: int(x)*(-1),list_A)) list map(lambda x: int(x)*(-1),list_A) map lambda x: int(x)*(-1) int(x)*(-1) int(x) int x -1 x list_A heapq.heapify(list_A) heapq.heapify heapq heapify list_A for i in range(M):
  
  target = heapq.heappop(list_A)
  #print("after heappop",list_A)
  
  '''負の要素の切り捨て除算は切り捨てがマイナスの方に
  行くため少しだけややこしい。'''
  target = (-1)*((-target) // 2)
  heapq.heappush(list_A, target)  # 要素の挿入
  #print("No.",i,"change finished",list_A) i range(M) range M target = heapq.heappop(list_A) target heapq.heappop(list_A) heapq.heappop heapq heappop list_A '''負の要素の切り捨て除算は切り捨てがマイナスの方に
  行くため少しだけややこしい。''' target = (-1)*((-target) // 2) target (-1)*((-target) // 2) -1 (-target) // 2 -target target 2 heapq.heappush(list_A, target) heapq.heappush heapq heappush list_A target print((-1)*sum(list_A)) print (-1)*sum(list_A) -1 sum(list_A) sum list_A M = map(int,input().split()) map(int,input().split()) M N,M = map(int,input().split()) map(int,input().split()) N list_A = list(map(lambda x: int(x)*(-1),list_A)) list(map(lambda x: int(x)*(-1),list_A)) list_A target = (-1)*((-target) // 2) (-1)*((-target) // 2) target list_A = list(map(int,input().split())) list(map(int,input().split())) list_A target = heapq.heappop(list_A) heapq.heappop(list_A) target
import heapq
N,M = map(int,input().split())
list_A = list(map(int,input().split()))	
list_A = list(map(lambda x: int(x)*(-1),list_A))

#print(list_A)

#heapifyが動作が重い。for文の中に入れるとTLE。
heapq.heapify(list_A) #list_Aを優先度付きキューに
for i in range(M):
  
  target = heapq.heappop(list_A)
  #print("after heappop",list_A)
  
  '''負の要素の切り捨て除算は切り捨てがマイナスの方に
  行くため少しだけややこしい。'''
  target = (-1)*((-target) // 2)
  heapq.heappush(list_A, target)  # 要素の挿入
  #print("No.",i,"change finished",list_A)

print((-1)*sum(list_A))


