n,k = map(int,input().split())
l = list(map(int,input().split()))
l.sort()
x,y=0,10**9
while y>x+1:
    m = (x+y)//2
    c=0
    for i in l:
        c+=(i-1)//m
    if c<=k:
        y=m
    else:
        x=m
print(y) n,k = map(int,input().split()) n map(int,input().split()) map int input().split() ().split () input split k l = list(map(int,input().split())) l list(map(int,input().split())) list map(int,input().split()) map int input().split() ().split () input split l.sort() l.sort l sort x,y=0,10**9 x 0 y 10**9 10 9 while y>x+1:
    m = (x+y)//2
    c=0
    for i in l:
        c+=(i-1)//m
    if c<=k:
        y=m
    else:
        x=m y>x+1 y x+1 x 1 m = (x+y)//2 m (x+y)//2 x+y x y 2 c=0 c 0 for i in l:
        c+=(i-1)//m
     i l c+=(i-1)//m c (i-1)//m i-1 i 1 m if c<=k:
        y=m
    else:
        x=m c<=k c k y=m y m x=m x m print(y) print y m = (x+y)//2 (x+y)//2 m k = map(int,input().split()) map(int,input().split()) k c+=(i-1)//m (i-1)//m c n,k = map(int,input().split()) map(int,input().split()) n l = list(map(int,input().split())) list(map(int,input().split())) l x,y=0,10**9 0 x x=m m x c=0 0 c y=0,10**9 10**9 y y=m m y
n,k = map(int,input().split())
l = list(map(int,input().split()))
l.sort()
x,y=0,10**9
while y>x+1:
    m = (x+y)//2
    c=0
    for i in l:
        c+=(i-1)//m
    if c<=k:
        y=m
    else:
        x=m
print(y)