#include<bits/stdc++.h>
using namespace std;
using lnt=long long;
#define endl '\n'
bool Check(lnt s,int n,int k,int a[])
{
lnt tot=0;
for (int i=0;i<n;i++)
{
lnt num=s-a[i]+1;
if (num>0)
{
tot+=num;
if (tot>k*s) return false;
}
}
return tot<=k*s;
}
const int N=1e6+10;
int a[N];
const int INF=0X3F3F3F3F;
void Solve(void)
{
int n,k;cin>>n>>k;
int mx=-INF;
lnt sum=0;
for (int i=0;i<n;i++)
{
cin>>a[i];
if (a[i]>mx) mx=a[i];
sum+=a[i];
}
lnt left=0;
lnt right=mx+sum/k+2;
lnt ans=0;
while(left<=right)
{
lnt mid=left+(right-left)/2;
if (Check(mid,n,k,a)) ans=mid,left=mid+1;
else right=mid-1;
}
cout<<ans<<endl;
}
int main()
{
ios::sync_with_stdio(false);
cin.tie(nullptr);
int T=1;
while(T--)Solve();
return 0;
}