#include <iostream>
using namespace std;
bool isValid(long long val,long long * a,long long n,long long k)
{
long long sum=0;
long long count1=0;
for(long long i=0;i<n;i++)
{
if(sum+a[i] <= val)
{
sum+=a[i];
}
else
{
count1++;
sum=a[i];
}
//cout<<sum<<endl;
}
return (count1+1) <= k;
}
int main() {
long long n,k;
cin>>n>>k;
long long a[n];
long long maxi=0;
for(long long i=0;i<n;i++)
{
cin>>a[i];
if(maxi < a[i])
{
maxi=a[i];
}
}
long long lo = maxi;
long long hi = 1e18;
int ans;
//cout<<isValid(7,a,n,k)<<endl;;
while(lo <= hi)
{
long long mid = (lo+hi)/2;
if(isValid(mid,a,n,k))
{
ans = mid;
hi = mid-1;
}
else
{
lo =mid+1;
}
}
cout<<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKYm9vbCBpc1ZhbGlkKGxvbmcgbG9uZyB2YWwsbG9uZyBsb25nICogYSxsb25nIGxvbmcgbixsb25nIGxvbmcgaykKewoJbG9uZyBsb25nIHN1bT0wOwoJbG9uZyBsb25nIGNvdW50MT0wOwoJZm9yKGxvbmcgbG9uZyBpPTA7aTxuO2krKykKCXsKCQlpZihzdW0rYVtpXSA8PSB2YWwpCgkJewoJCQlzdW0rPWFbaV07CgkJfQoJCWVsc2UKCQl7CgkJCWNvdW50MSsrOwoJCQlzdW09YVtpXTsKCQl9CgkJLy9jb3V0PDxzdW08PGVuZGw7Cgl9CglyZXR1cm4gKGNvdW50MSsxKSA8PSBrOwp9CgppbnQgbWFpbigpIHsKCglsb25nIGxvbmcgbixrOwoJY2luPj5uPj5rOwoJCglsb25nIGxvbmcgYVtuXTsKCWxvbmcgbG9uZyBtYXhpPTA7Cglmb3IobG9uZyBsb25nIGk9MDtpPG47aSsrKQoJewoJCWNpbj4+YVtpXTsKCQlpZihtYXhpIDwgYVtpXSkKCQl7CgkJCW1heGk9YVtpXTsKCQl9Cgl9CgoJbG9uZyBsb25nIGxvID0gbWF4aTsKCWxvbmcgbG9uZyBoaSA9IDFlMTg7CglpbnQgYW5zOwoJCgkvL2NvdXQ8PGlzVmFsaWQoNyxhLG4sayk8PGVuZGw7OwoJCgl3aGlsZShsbyA8PSBoaSkKCXsKCQlsb25nIGxvbmcgbWlkID0gKGxvK2hpKS8yOwoJCQoJCWlmKGlzVmFsaWQobWlkLGEsbixrKSkKCQl7CgkJCWFucyA9IG1pZDsKCQkJaGkgPSBtaWQtMTsKCQl9CgkJZWxzZQoJCXsKCQkJbG8gPW1pZCsxOwoJCX0KCX0KCgljb3V0PDxhbnM8PGVuZGw7CgoJcmV0dXJuIDA7Cn0=