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

l = 0
r = 1000000000

def judge(m):
    k = 0
    for i in range(N):
        if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
    return k<=K

while r-l>1:
    if judge((l+r)//2):
        r = (l+r)//2
    else:
        l = (l+r)//2
print(r) N,K = list(map(int,input().split())) N list(map(int,input().split())) list 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 = 1000000000 r 1000000000 def judge(m):
    k = 0
    for i in range(N):
        if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
    return k<=K judge k = 0 k 0 for i in range(N):
        if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
     i range(N) range N if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
     A[i]%m==0 A[i]%m A[i] A i m 0 k+=A[i]//m-1 k A[i]//m-1 A[i]//m A[i] A i m 1 k+=A[i]//m k A[i]//m A[i] A i m return k<=K k<=K k K m m while r-l>1:
    if judge((l+r)//2):
        r = (l+r)//2
    else:
        l = (l+r)//2 r-l>1 r-l r l 1 if judge((l+r)//2):
        r = (l+r)//2
    else:
        l = (l+r)//2 judge((l+r)//2) judge (l+r)//2 l+r l r 2 r = (l+r)//2 r (l+r)//2 l+r l r 2 l = (l+r)//2 l (l+r)//2 l+r l r 2 print(r) print r def judge(m):
    k = 0
    for i in range(N):
        if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
    return k<=K def judge(m):
    k = 0
    for i in range(N):
        if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
    return k<=K judge A = list(map(int,input().split())) list(map(int,input().split())) A l = 0 0 l r = (l+r)//2 (l+r)//2 r K = list(map(int,input().split())) list(map(int,input().split())) K N,K = list(map(int,input().split())) list(map(int,input().split())) N l = (l+r)//2 (l+r)//2 l r = 1000000000 1000000000 r
N,K = list(map(int,input().split()))
A = list(map(int,input().split()))

l = 0
r = 1000000000

def judge(m):
    k = 0
    for i in range(N):
        if A[i]%m==0:
            k+=A[i]//m-1
        else:
            k+=A[i]//m
    return k<=K

while r-l>1:
    if judge((l+r)//2):
        r = (l+r)//2
    else:
        l = (l+r)//2
print(r)