#include <bits/stdc++.h>
using namespace std;
typedef long long int ll;
vector <ll> b ;
ll n,k ;
bool check(ll g){
ll t = g*k;
ll i=1;
while(i<=n){
if(b[i] > g){
t = t - g;
}else{
t = t - b[i];
}
i++;
}
if(t <= 0){
return true;
}
return false;
}
int main() {
cin>>n;
cin>>k;
b.resize(n+5,0);
ll sum = 0;
ll i =1 ;
while(i<=n){
cin >> b[i];
sum += b[i];
i++;
}
ll ans = 0;
//apply binary search
ll low = 1;
ll high = 1e18;
ll y=0;
while (low <= high && y == 0) {
ll mid = low + (high - low) / 2;
if (check(mid) && !check(mid + 1)) {
ans = mid;
y = 1;
}
else if (check(mid)) {
low = mid + 1;
}
else {
high = mid - 1;
}
}
cout <<ans<<endl;
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CnR5cGVkZWYgbG9uZyBsb25nIGludCBsbDsKdmVjdG9yIDxsbD4gYiA7CmxsIG4sayA7Cgpib29sIGNoZWNrKGxsIGcpewoJbGwgdCA9IGcqazsKCWxsIGk9MTsKCXdoaWxlKGk8PW4pewoJCWlmKGJbaV0gPiBnKXsKCQkJdCA9IHQgLSBnOwoJCX1lbHNlewoJCQl0ID0gdCAtIGJbaV07CgkJfQoJCWkrKzsKCX0KCWlmKHQgPD0gMCl7CgkJcmV0dXJuIHRydWU7Cgl9CglyZXR1cm4gZmFsc2U7CgkKfQoKaW50IG1haW4oKSB7CgkKCWNpbj4+bjsKICAgIGNpbj4+azsKICAgIGIucmVzaXplKG4rNSwwKTsKCglsbCBzdW0gPSAwOwoJbGwgaSA9MSA7Cgl3aGlsZShpPD1uKXsKCQljaW4gPj4gYltpXTsKCQlzdW0gKz0gYltpXTsKCQlpKys7Cgl9CgkKCWxsIGFucyA9IDA7CgkKCS8vYXBwbHkgYmluYXJ5IHNlYXJjaAoJbGwgbG93ID0gMTsKCWxsIGhpZ2ggPSAxZTE4OwoJbGwgeT0wOwoJd2hpbGUgKGxvdyA8PSBoaWdoICYmIHkgPT0gMCkgewogICAgCWxsIG1pZCA9IGxvdyArIChoaWdoIC0gbG93KSAvIDI7CgogICAgCWlmIChjaGVjayhtaWQpICYmICFjaGVjayhtaWQgKyAxKSkgewogICAgCSBhbnMgPSBtaWQ7CiAgICAgICAgIHkgPSAxOwogICAgCX0KICAgIAllbHNlIGlmIChjaGVjayhtaWQpKSB7CiAgICAgICAgCWxvdyA9IG1pZCArIDE7CiAgICAJfQogICAgCWVsc2UgewogICAgICAgIAloaWdoID0gbWlkIC0gMTsKICAgIAl9Cgl9CgkKCWNvdXQgPDxhbnM8PGVuZGw7CglyZXR1cm4gMDsKfQ==