N,K = map(int, input().split())
A = list(map(int, input().split()))

l,r = 1,max(A)
while l<r:
	m = (l+r)//2
	s = sum([a//m+(not a%m==0)-1 for a in A])
	if s <= K:
		r = m
	else:
		l = m+1
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,r = 1,max(A) l 1 r max(A) max A while l<r:
	m = (l+r)//2
	s = sum([a//m+(not a%m==0)-1 for a in A])
	if s <= K:
		r = m
	else:
		l = m+1 l<r l r m = (l+r)//2 m (l+r)//2 l+r l r 2 a//m+(not a%m==0)-1 for a in A for a in A a A for a in A a//m+(not a%m==0)-1 a//m+(not a%m==0) a//m a m not a%m==0 a%m==0 a%m a m 0 1 s = sum([a//m+(not a%m==0)-1 for a in A]) s sum([a//m+(not a%m==0)-1 for a in A]) sum [a//m+(not a%m==0)-1 for a in A] if s <= K:
		r = m
	else:
		l = m+1 s <= K s K r = m r m l = m+1 l m+1 m 1 print(r) print r A = list(map(int, input().split())) list(map(int, input().split())) A l,r = 1,max(A) 1 l s = sum([a//m+(not a%m==0)-1 for a in A]) sum([a//m+(not a%m==0)-1 for a in A]) s r = 1,max(A) max(A) r l = m+1 m+1 l m = (l+r)//2 (l+r)//2 m N,K = map(int, input().split()) map(int, input().split()) N K = map(int, input().split()) map(int, input().split()) K r = m m r
N,K = map(int, input().split())
A = list(map(int, input().split()))

l,r = 1,max(A)
while l<r:
	m = (l+r)//2
	s = sum([a//m+(not a%m==0)-1 for a in A])
	if s <= K:
		r = m
	else:
		l = m+1
print(r)