def max_min_sum(): import sys input = sys.stdin.read().split() idx = 0 N = int(input[idx]) idx += 1 K = int(input[idx]) idx += 1 A = list(map(int, input[idx:idx+N])) sum_A = sum(A) low = 0 high = sum_A best = 0 def is_possible(M): count = 0 current_sum = 0 for num in A: current_sum += num if current_sum >= M: count += 1 current_sum = 0 if count >= K: break return count >= K and current_sum == 0 while low <= high: mid = (low + high) // 2 if is_possible(mid): best = mid low = mid + 1 else: high = mid - 1 print(best) max_min_sum()