from sys import stdin
import numpy as np
n, k = map(int, stdin.readline().split())
a = np.array(stdin.readline().split(), dtype=np.int64)

ng = 0
ok = 10 ** 9 + 1
while ok - ng > 1:
    mid = (ok + ng) >> 1
    if np.sum(np.ceil(a / mid) - 1) <= k:
        ok = mid
    else:
        ng = mid
print(ok) from sys import stdin import numpy as np numpy n, k = map(int, stdin.readline().split()) n map(int, stdin.readline().split()) map int stdin.readline().split() stdin.readline().split stdin.readline() stdin.readline stdin readline split k a = np.array(stdin.readline().split(), dtype=np.int64) a np.array(stdin.readline().split(), dtype=np.int64) np.array np array stdin.readline().split() stdin.readline().split stdin.readline() stdin.readline stdin readline split dtype=np.int64 dtype np.int64 np int64 ng = 0 ng 0 ok = 10 ** 9 + 1 ok 10 ** 9 + 1 10 ** 9 10 9 1 while ok - ng > 1:
    mid = (ok + ng) >> 1
    if np.sum(np.ceil(a / mid) - 1) <= k:
        ok = mid
    else:
        ng = mid ok - ng > 1 ok - ng ok ng 1 mid = (ok + ng) >> 1 mid (ok + ng) >> 1 ok + ng ok ng 1 if np.sum(np.ceil(a / mid) - 1) <= k:
        ok = mid
    else:
        ng = mid np.sum(np.ceil(a / mid) - 1) <= k np.sum(np.ceil(a / mid) - 1) np.sum np sum np.ceil(a / mid) - 1 np.ceil(a / mid) np.ceil np ceil a / mid a mid 1 k ok = mid ok mid ng = mid ng mid print(ok) print ok ng = mid mid ng ng = 0 0 ng ok = mid mid ok mid = (ok + ng) >> 1 (ok + ng) >> 1 mid n, k = map(int, stdin.readline().split()) map(int, stdin.readline().split()) n a = np.array(stdin.readline().split(), dtype=np.int64) np.array(stdin.readline().split(), dtype=np.int64) a ok = 10 ** 9 + 1 10 ** 9 + 1 ok k = map(int, stdin.readline().split()) map(int, stdin.readline().split()) k
from sys import stdin
import numpy as np
n, k = map(int, stdin.readline().split())
a = np.array(stdin.readline().split(), dtype=np.int64)

ng = 0
ok = 10 ** 9 + 1
while ok - ng > 1:
    mid = (ok + ng) >> 1
    if np.sum(np.ceil(a / mid) - 1) <= k:
        ok = mid
    else:
        ng = mid
print(ok)
