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