#include<bits/stdc++.h>
using namespace std;
int N,K,k=0,a[105],Right=0x3fff;
int f(int l){
int sum=0;
for(int i=0;i<N;i++)
sum+=a[i]/l;
return sum;
}
void solve(){
int Left=0;
while(Left+1<Right){
int mid=Left+(Right-Left)/2;
if(f(mid)<K)
Right=mid;
else
Left=mid;
}
printf("%d",Left);
return ;
}
int main(){
scanf("%d",&N);
for(int i=0;i<N;i++){
scanf("%d",&a[i]);
if(a[i]<Right)
Right=a[i];
}
scanf("%d",&K);
solve();
return 0;
}
/*
3
10 24 15
7
*/
注意二分算法中终止循环的条件是left+1<right