#include<bits/stdc++.h>
using namespace std;
const int N=1e5+9;
typedef long long ll;
ll arr[N];
ll m,sum=0,n;
bool check(ll mid)
{
ll cnt=0;
ll flag =0;
for(int i=1;i<=n;i++)
{
if(flag+arr[i]<=mid)
flag+=arr[i];
else
{
cnt++;
flag=arr[i];
}
}
return cnt<=m;
}
int main()
{
ll left=0,right=0;
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>arr[i];
left=max(left,arr[i]);right+=arr[i];
}
while(left<right)
{
ll mid = left+(right-left)/2;
if(check(mid))
right = mid;
else
left = mid+1;
}
cout<<left;
}