from  heapq import heappush, heappop, heapify
import math

N, K = map(int, input().split())

A = list(map(int, input().split()))

l = 0
r = 10 ** 9

def check(m):
    now = 0
    for i in range(N):
        #A[i]-1してるのは、たとえばm=3のときは4,7から回数が増えるため
        now += (A[i]-1) // m
    return now <= K

#差が1になったら終了
while r - l > 1:
    m = (l + r) // 2

    if check(m):
        r = m
    else:
        l = m

print(r) from  heapq import heappush, heappop, heapify import math math 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 l = 0 l 0 r = 10 ** 9 r 10 ** 9 10 9 def check(m):
    now = 0
    for i in range(N):
        #A[i]-1してるのは、たとえばm=3のときは4,7から回数が増えるため
        now += (A[i]-1) // m
    return now <= K

#差が1になったら終了 check now = 0 now 0 for i in range(N):
        #A[i]-1してるのは、たとえばm=3のときは4,7から回数が増えるため
        now += (A[i]-1) // m
     i range(N) range N now += (A[i]-1) // m now (A[i]-1) // m A[i]-1 A[i] A i 1 m return now <= K now <= K now K m m while r - l > 1:
    m = (l + r) // 2

    if check(m):
        r = m
    else:
        l = m r - l > 1 r - l r l 1 m = (l + r) // 2 m (l + r) // 2 l + r l r 2 if check(m):
        r = m
    else:
        l = m check(m) check m r = m r m l = m l m print(r) print r r = m m r m = (l + r) // 2 (l + r) // 2 m K = map(int, input().split()) map(int, input().split()) K l = m m l l = 0 0 l r = 10 ** 9 10 ** 9 r def check(m):
    now = 0
    for i in range(N):
        #A[i]-1してるのは、たとえばm=3のときは4,7から回数が増えるため
        now += (A[i]-1) // m
    return now <= K

#差が1になったら終了 def check(m):
    now = 0
    for i in range(N):
        #A[i]-1してるのは、たとえばm=3のときは4,7から回数が増えるため
        now += (A[i]-1) // m
    return now <= K

#差が1になったら終了 check A = list(map(int, input().split())) list(map(int, input().split())) A N, K = map(int, input().split()) map(int, input().split()) N
from  heapq import heappush, heappop, heapify
import math

N, K = map(int, input().split())

A = list(map(int, input().split()))

l = 0
r = 10 ** 9

def check(m):
    now = 0
    for i in range(N):
        #A[i]-1してるのは、たとえばm=3のときは4,7から回数が増えるため
        now += (A[i]-1) // m
    return now <= K

#差が1になったら終了
while r - l > 1:
    m = (l + r) // 2

    if check(m):
        r = m
    else:
        l = m

print(r)