import Data.List

main = do
  li <- getLine
  let [n,m] = map read $ words li
  li <- getLine
  let as = map read $ words li
  let ans = compute n m as
  print ans

compute :: Int -> Int -> [Int] -> Int
compute n m as = sum (ass !! m)
  where
    as0 = sortBy c as
    ass = iterate' f as0

c = flip compare
f (a:as) = insertBy c (div a 2) as

{-
最大のものを取り出し、半分にし、戻す。
という作業をM回繰り返し、残った値の和が答え。

最大のものが簡単に取り出せるヒープのようなデータ構造を使うべき問題だ。
sortBy, insertBy で間に合うだろうか？
-}
