#include <bits/stdc++.h>
using namespace std;
unsigned long long a[100000005];
inline bool check(long long x,long long n,long long m)
{
long long now = 0,ans = 0;
for(int i = 1;i <= n;i ++)
{
if(now + a[i] > x)
{
ans++;
now = a[i];
}
else
{
now += a[i];
}
}
return ans + 1 <= m;
}
int main()
{
unsigned long long n,m,l = 1,r = 9999999999,mid = (l + r) / 2,ans = 0;
cin >> n >> m;
for(int i = 1;i <= n;i ++)
{
cin >> a[i];
}
while(l <= r)
{
mid = (l + r) / 2;
if(check(mid,n,m))
{
r = mid - 1;
ans = mid;
}
else
{
l = mid + 1;
}
}
cout << ans;
return 0;
}