#include<bits/stdc++.h>
using namespace std;
using ll=long long;
ll n,k,s,l,m,r,ans;
vector<ll>v;
bool check(ll mid){
ll temp=0,num=0;
for(int i=0;i<n;i++){
if(temp+v[i]<=mid){
temp+=v[i];
}else{
temp=v[i];
num++;
}
}
return num>=k;
}
void solve(){
l=*max_element(v.begin(),v.end()),r=s;
while(l<=r){
m=l+r>>1;
if(check(m)){
ans=m;
l=m+1;
}else{
r=m-1;
}
}
cout<<ans<<endl;
}
int main(){
ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);
cin>>n>>k;
v.resize(n);
for(int i=0;i<n;i++){
cin>>v[i];
s+=v[i];
}
sort(v.begin(),v.end());
solve();
return 0;
}