import math
N, K = map(int, input().split())
A = list(map(int, input().split()))
mini = 0
maxi = max(A)
while maxi - mini > 1:
    mid = (maxi+mini)//2
    s = sum(math.ceil(a/mid)-1 for a in A)
    if s>K:
      mini = mid
    else:
      maxi = mid
print(mini+1) import math math 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 mini = 0 mini 0 maxi = max(A) maxi max(A) max A while maxi - mini > 1:
    mid = (maxi+mini)//2
    s = sum(math.ceil(a/mid)-1 for a in A)
    if s>K:
      mini = mid
    else:
      maxi = mid maxi - mini > 1 maxi - mini maxi mini 1 mid = (maxi+mini)//2 mid (maxi+mini)//2 maxi+mini maxi mini 2 s = sum(math.ceil(a/mid)-1 for a in A) s sum(math.ceil(a/mid)-1 for a in A) sum math.ceil(a/mid)-1 math.ceil(a/mid) math.ceil math ceil a/mid a mid 1 if s>K:
      mini = mid
    else:
      maxi = mid s>K s K mini = mid mini mid maxi = mid maxi mid print(mini+1) print mini+1 mini 1 mid = (maxi+mini)//2 (maxi+mini)//2 mid s = sum(math.ceil(a/mid)-1 for a in A) sum(math.ceil(a/mid)-1 for a in A) s maxi = max(A) max(A) maxi K = map(int, input().split()) map(int, input().split()) K mini = mid mid mini mini = 0 0 mini maxi = mid mid maxi N, K = map(int, input().split()) map(int, input().split()) N A = list(map(int, input().split())) list(map(int, input().split())) A
import math
N, K = map(int, input().split())
A = list(map(int, input().split()))
mini = 0
maxi = max(A)
while maxi - mini > 1:
    mid = (maxi+mini)//2
    s = sum(math.ceil(a/mid)-1 for a in A)
    if s>K:
      mini = mid
    else:
      maxi = mid
print(mini+1)