n,k=map(int,input().split())
a=list(map(int,input().split()))
import math
x=0
y=10**9
z=5*(10**8)
s=0
for i in range(100):
    t=0
    for j in range(n):
        t+=a[j]//z
    if t<=k:
        s=t
        y=z
        z=(x+y)/2
    else:
        x=z
        z=(x+y)/2
print(math.ceil(z)) 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 import math math x=0 x 0 y=10**9 y 10**9 10 9 z=5*(10**8) z 5*(10**8) 5 10**8 10 8 s=0 s 0 for i in range(100):
    t=0
    for j in range(n):
        t+=a[j]//z
    if t<=k:
        s=t
        y=z
        z=(x+y)/2
    else:
        x=z
        z=(x+y)/2 i range(100) range 100 t=0 t 0 for j in range(n):
        t+=a[j]//z
     j range(n) range n t+=a[j]//z t a[j]//z a[j] a j z if t<=k:
        s=t
        y=z
        z=(x+y)/2
    else:
        x=z
        z=(x+y)/2 t<=k t k s=t s t y=z y z z=(x+y)/2 z (x+y)/2 x+y x y 2 x=z x z z=(x+y)/2 z (x+y)/2 x+y x y 2 print(math.ceil(z)) print math.ceil(z) math.ceil math ceil z k=map(int,input().split()) map(int,input().split()) k z=(x+y)/2 (x+y)/2 z x=0 0 x x=z z x y=z z y z=(x+y)/2 (x+y)/2 z n,k=map(int,input().split()) map(int,input().split()) n a=list(map(int,input().split())) list(map(int,input().split())) a t=0 0 t z=5*(10**8) 5*(10**8) z y=10**9 10**9 y s=0 0 s t+=a[j]//z a[j]//z t s=t t s
n,k=map(int,input().split())
a=list(map(int,input().split()))
import math
x=0
y=10**9
z=5*(10**8)
s=0
for i in range(100):
    t=0
    for j in range(n):
        t+=a[j]//z
    if t<=k:
        s=t
        y=z
        z=(x+y)/2
    else:
        x=z
        z=(x+y)/2
print(math.ceil(z))
