#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;
}