import sys
sys.stdin = open('input.txt', 'rt')
input = sys.stdin.readline
N, M = map(int, input().split())
videos = list(map(int, input().split()))
start = max(videos) # 0부터 시작할 필요가 없다. 일단 1개는 필수로 들어가야하니깐 제일 큰 값을 넣는다.
end = sum(videos) # 동영상 길이를 모두 더한걸 넘을 수 없으니 end는 리스트의 합
answer = 0
while start <= end: # 값이 나오면 종류
middle = (start + end) // 2 # 이분 탐색!
temp = 0
count = 1 # 블루레이 카운트 1개부터 시작
for b in videos:
temp += b # 순서대로 더하고
if temp > middle: # 중간 값 을 넘을경우
count += 1 # 블루레이 추가
temp = b # temp 초기화
if count > M: # 카운트가 넘을 경우 블루레이 길이를 늘려도 되므로 start를 늘린다.
start = middle + 1
else:
end = middle - 1 # 아닐경우 end를 줄여준다.
answer = middle
print(answer)