import java.util.Scanner;
public class p1182 {
static int n,m;
static long[] ar;
public static void main(String[] args) {
Scanner scanner=new Scanner(System.in);
n=scanner.nextInt();
m=scanner.nextInt();
m--;
ar=new long[(int) (n+1)];
for (int i = 1; i <=n; i++) {
int a=scanner.nextInt();
ar[i]=ar[i-1]+a;
}
long l=1,r=ar[ n];
long ans=0;
while(l<=r) {
long mid=((l+r)/2);
if (judge(mid)) {
l=mid+1;
ans=mid;
}else {
r=mid-1;
}
}
System.out.println(ans);
}
private static boolean judge(long mid) {
// TODO Auto-generated method stub
int ind=0,tot=m;
for (int i = 1; i <=n; i++) {
if (tot<0) {
break;
}
if (ar[i]-ar[ind]>=mid) {
tot--;
ind=i;
}
}
if (tot<=0) {
return true;
}
return false;
}
}