n, k = map(int, input().split())
a = list(map(int, input().split()))

max_l = 10**9
min_l = 0
while max_l - min_l != 1:
    count = 0
    mean = (max_l+min_l)//2
    for i in range(n):
        count += -(-a[i]//mean)-1
    if count <= k:
        max_l = mean
    else:
        min_l = mean
print(max_l) 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 max_l = 10**9 max_l 10**9 10 9 min_l = 0 min_l 0 while max_l - min_l != 1:
    count = 0
    mean = (max_l+min_l)//2
    for i in range(n):
        count += -(-a[i]//mean)-1
    if count <= k:
        max_l = mean
    else:
        min_l = mean max_l - min_l != 1 max_l - min_l max_l min_l 1 count = 0 count 0 mean = (max_l+min_l)//2 mean (max_l+min_l)//2 max_l+min_l max_l min_l 2 for i in range(n):
        count += -(-a[i]//mean)-1
     i range(n) range n count += -(-a[i]//mean)-1 count -(-a[i]//mean)-1 -(-a[i]//mean) -a[i]//mean -a[i] a[i] a i mean 1 if count <= k:
        max_l = mean
    else:
        min_l = mean count <= k count k max_l = mean max_l mean min_l = mean min_l mean print(max_l) print max_l count = 0 0 count min_l = 0 0 min_l max_l = 10**9 10**9 max_l max_l = mean mean max_l a = list(map(int, input().split())) list(map(int, input().split())) a count += -(-a[i]//mean)-1 -(-a[i]//mean)-1 count k = map(int, input().split()) map(int, input().split()) k mean = (max_l+min_l)//2 (max_l+min_l)//2 mean min_l = mean mean min_l n, k = map(int, input().split()) map(int, input().split()) n
n, k = map(int, input().split())
a = list(map(int, input().split()))

max_l = 10**9
min_l = 0
while max_l - min_l != 1:
    count = 0
    mean = (max_l+min_l)//2
    for i in range(n):
        count += -(-a[i]//mean)-1
    if count <= k:
        max_l = mean
    else:
        min_l = mean
print(max_l)