N,K=map(int,input().split())
A=list(map(int,input().split()))
L=0;R=10**9
while(R-L>1):
	M=L+R>>1;C=0
	for i in A:C+=(i-1)//M
	if C<=K:R=M
	else:L=M
print(R) N,K=map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split K A=list(map(int,input().split())) A list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split L=0 L 0 R=10**9 R 10**9 10 9 while(R-L>1):
	M=L+R>>1;C=0
	for i in A:C+=(i-1)//M
	if C<=K:R=M
	else:L=M R-L>1 R-L R L 1 M=L+R>>1 M L+R>>1 L+R L R 1 C=0 C 0 for i in A:C+=(i-1)//M
	 i A if C<=K:R=M
	else:L=M C<=K C K print(R) print R K=map(int,input().split()) map(int,input().split()) K N,K=map(int,input().split()) map(int,input().split()) N M=L+R>>1 L+R>>1 M R=10**9 10**9 R A=list(map(int,input().split())) list(map(int,input().split())) A L=0 0 L C=0 0 C
N,K=map(int,input().split())
A=list(map(int,input().split()))
L=0;R=10**9
while(R-L>1):
	M=L+R>>1;C=0
	for i in A:C+=(i-1)//M
	if C<=K:R=M
	else:L=M
print(R)