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

low = 0
high = max(a)

while low + 1 < high:
    mid = (low + high) // 2
    m = 0
    for x in a:
        m += (x - 1) // mid
    
    if m <= k:
        high = mid
    else:
        low = mid

print(high) 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 low = 0 low 0 high = max(a) high max(a) max a while low + 1 < high:
    mid = (low + high) // 2
    m = 0
    for x in a:
        m += (x - 1) // mid
    
    if m <= k:
        high = mid
    else:
        low = mid low + 1 < high low + 1 low 1 high mid = (low + high) // 2 mid (low + high) // 2 low + high low high 2 m = 0 m 0 for x in a:
        m += (x - 1) // mid
    
     x a m += (x - 1) // mid m (x - 1) // mid x - 1 x 1 mid if m <= k:
        high = mid
    else:
        low = mid m <= k m k high = mid high mid low = mid low mid print(high) print high mid = (low + high) // 2 (low + high) // 2 mid a = list(map(int, input().split())) list(map(int, input().split())) a m = 0 0 m n, k = map(int, input().split()) map(int, input().split()) n m += (x - 1) // mid (x - 1) // mid m high = max(a) max(a) high k = map(int, input().split()) map(int, input().split()) k low = 0 0 low high = mid mid high low = mid mid low
n, k = map(int, input().split())
a = list(map(int, input().split()))

low = 0
high = max(a)

while low + 1 < high:
    mid = (low + high) // 2
    m = 0
    for x in a:
        m += (x - 1) // mid
    
    if m <= k:
        high = mid
    else:
        low = mid

print(high)