#include <bits/stdc++.h>
using namespace std;
long long solve(int n, vector<int>v, int m){
priority_queue<long long>pq;
sort(v.begin(),v.end());
for(int i=0; i<min(n,m); i++){
pq.push(-v[i]);
}
for(int i=m; i<min(n,m); i++){
int val=-pq.top()+v[i];
pq.pop();
pq.push(-val);
}
long long ans=0;
while(!pq.empty()){
ans=max(ans,-pq.top());
pq.pop();
}
return ans;
}
int main() {
int n, m;
cin>>n>>m;
vector<int>v(n);
for(int i=0; i<n; i++){
cin>>v[i];
}
cout<<solve(n,v,m);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpsb25nIGxvbmcgc29sdmUoaW50IG4sIHZlY3RvcjxpbnQ+diwgaW50IG0pewoJcHJpb3JpdHlfcXVldWU8bG9uZyBsb25nPnBxOwoJc29ydCh2LmJlZ2luKCksdi5lbmQoKSk7Cglmb3IoaW50IGk9MDsgaTxtaW4obixtKTsgaSsrKXsKCQlwcS5wdXNoKC12W2ldKTsKCX0KCWZvcihpbnQgaT1tOyBpPG1pbihuLG0pOyBpKyspewoJCWludCB2YWw9LXBxLnRvcCgpK3ZbaV07CgkJcHEucG9wKCk7CgkJcHEucHVzaCgtdmFsKTsKCX0KCWxvbmcgbG9uZyBhbnM9MDsKCXdoaWxlKCFwcS5lbXB0eSgpKXsKCQlhbnM9bWF4KGFucywtcHEudG9wKCkpOwoJCXBxLnBvcCgpOwoJfQoJcmV0dXJuIGFuczsKfQoKaW50IG1haW4oKSB7CglpbnQgbiwgbTsKCWNpbj4+bj4+bTsKCXZlY3RvcjxpbnQ+dihuKTsKCWZvcihpbnQgaT0wOyBpPG47IGkrKyl7CgkJY2luPj52W2ldOwoJfQoJY291dDw8c29sdmUobix2LG0pOwoJcmV0dXJuIDA7Cn0=