#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int N=100010;
int n,m;
ll arr[N];
int count=0;
bool check(int x){
int count=1,tmp=0;
for(int i=1;i<=n;i++){
if(arr[i]+tmp<=x) tmp+=arr[i];
else{
tmp=arr[i];
count++;
}
}
return count<=m;
}
int main(){
cin>>n>>m;
ll l=0,r=0;
for(int i=1;i<=n;i++){
scanf("%d",&arr[i]);
l=max(l,arr[i]);
r+=arr[i];
}
while(l<=r){
ll mid=l+(r-l)/2;
if(check(mid)) r=mid-1;
else l=mid+1;
}
cout<<l;
return 0;
}