import heapq N, M = list(map(int,input().split())) T = list(map(int,input().split())) HQ = [] heapq.heapify(HQ) servers = 1 heapq.heappush(HQ, T[0]) for i in range(1, N): if servers < M: heapq.heappush(HQ, T[i]) servers += 1 else: p = heapq.heappop(HQ) heapq.heappush(HQ, p + T[i]) print(max(HQ))