import math
def possible(l, a, k):
    for x in a:
        k -= math.ceil(x/l)-1
    return k>=0

n, k = map(int, input().split())
a = [int(x) for x in input().split()]
mini = 1
maxi = 10**9+7
while(mini!=maxi):
    mid = (mini+maxi)//2
    if possible(mid, a, k):
        maxi = mid
    else:
        mini = mid + 1
print(mini) import math math def possible(l, a, k):
    for x in a:
        k -= math.ceil(x/l)-1
    return k>=0 possible for x in a:
        k -= math.ceil(x/l)-1
     x a k -= math.ceil(x/l)-1 k math.ceil(x/l)-1 math.ceil(x/l) math.ceil math ceil x/l x l 1 return k>=0 k>=0 k 0 l l a a k k n, k = map(int, input().split()) n map(int, input().split()) map int input().split() ().split () input split k int(x) for x in input().split() for x in input().split() x input().split() ().split () input split for x in input().split() int(x) int x a = [int(x) for x in input().split()] a [int(x) for x in input().split()] mini = 1 mini 1 maxi = 10**9+7 maxi 10**9+7 10**9 10 9 7 while(mini!=maxi):
    mid = (mini+maxi)//2
    if possible(mid, a, k):
        maxi = mid
    else:
        mini = mid + 1 mini!=maxi mini maxi mid = (mini+maxi)//2 mid (mini+maxi)//2 mini+maxi mini maxi 2 if possible(mid, a, k):
        maxi = mid
    else:
        mini = mid + 1 possible(mid, a, k) possible mid a k maxi = mid maxi mid mini = mid + 1 mini mid + 1 mid 1 print(mini) print mini maxi = mid mid maxi def possible(l, a, k):
    for x in a:
        k -= math.ceil(x/l)-1
    return k>=0 def possible(l, a, k):
    for x in a:
        k -= math.ceil(x/l)-1
    return k>=0 possible maxi = 10**9+7 10**9+7 maxi mini = 1 1 mini k = map(int, input().split()) map(int, input().split()) k n, k = map(int, input().split()) map(int, input().split()) n mid = (mini+maxi)//2 (mini+maxi)//2 mid mini = mid + 1 mid + 1 mini a = [int(x) for x in input().split()] [int(x) for x in input().split()] a
import math
def possible(l, a, k):
    for x in a:
        k -= math.ceil(x/l)-1
    return k>=0

n, k = map(int, input().split())
a = [int(x) for x in input().split()]
mini = 1
maxi = 10**9+7
while(mini!=maxi):
    mid = (mini+maxi)//2
    if possible(mid, a, k):
        maxi = mid
    else:
        mini = mid + 1
print(mini)
