import math
def possible(l, a, k):
    for x in a:
        k -= x//l
        if x%l==0:
            k += 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 -= x//l
        if x%l==0:
            k += 1
    return k>=0 possible for x in a:
        k -= x//l
        if x%l==0:
            k += 1
     x a k -= x//l k x//l x l if x%l==0:
            k += 1
     x%l==0 x%l x l 0 k += 1 k 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 = 10**9+7 10**9+7 maxi def possible(l, a, k):
    for x in a:
        k -= x//l
        if x%l==0:
            k += 1
    return k>=0 def possible(l, a, k):
    for x in a:
        k -= x//l
        if x%l==0:
            k += 1
    return k>=0 possible n, k = map(int, input().split()) map(int, input().split()) n a = [int(x) for x in input().split()] [int(x) for x in input().split()] a mini = mid + 1 mid + 1 mini mini = 1 1 mini k = map(int, input().split()) map(int, input().split()) k maxi = mid mid maxi mid = (mini+maxi)//2 (mini+maxi)//2 mid
import math
def possible(l, a, k):
    for x in a:
        k -= x//l
        if x%l==0:
            k += 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)
