#include<iostream>
#include<algorithm>
#include<cmath>
#define int long long
using namespace std;
int n,k;
const int N=1e5+9;
int a[N];
bool ck(int x){//x为最小晒干时间
int cnt=0;//烘干时间
for(int i=0;i<n;i++){
if(a[i]>x)cnt+=ceil((1.0*a[i]-x)/k);
}
return x>=cnt;
}
signed main(){
cin>>n;
for(int i=0;i<n;i++)cin>>a[i];
sort(a,a+n);
cin>>k;
k--;
if(k==0){
cout<<a[n-1];
return 0;
}
int l=0,r=1e9;
while(l+1!=r){
int mid=(l+r)>>1;
if(ck(mid))r=mid;
else l=mid;
}
cout<<r;
return 0;
}