광재는 전자기기 대여사업을 시작했다. 퇴근하기 전에 다음날 손님들에게 빌려줄 N개의 전자기기를 충전하려 한다. 사용 가능한 콘센트는 M개가 있고, 성능은 모두 동일하다.
전자기기들은 한 번에 하나의 콘센트에서만 충전이 가능하고, 충전에 필요한 시간은 2^k(0 ≤ k ≤ 15, k는 정수) 형태이다.
광재의 빠른 퇴근을 위해 모든 전자기기를 충전하기 위한 최소 시간이 얼마인지 알려주자.
# 23843
import sys
input = lambda: sys.stdin.readline().strip()
# 필요 시간 정렬
# 콘센트 개수 만큼 힙에 추가
# 이후부터는 기존 힙 값에 추가
# 힙 안에 있는 최대값이 필요 시간
import heapq
n, m = map(int, input().split())
arr = list(map(int, input().split()))
arr.sort(reverse = True)
if m >= n:
print(arr[0])
exit(0)
time = []
for i in range(n):
if i < m:
heapq.heappush(time, arr[i])
else:
heapq.heappush(time, heapq.heappop(time) + arr[i])
print(max(time))