# coding: utf-8
# Your code here!
N,K=map(int,input().split())

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

low=0
high=10**9+1

while high-low!=1:
    mid=(high+low)//2
    cut_temp=0
    ans=-1
    
    for a in A:
        cut_temp+=-(-a//mid)-1
    if cut_temp>K:
        low=mid
    else:
        high=mid
    
print(high) N,K=map(int,input().split()) N map(int,input().split()) map int input().split() ().split () input split K A=list(map(float, input().split())) A list(map(float, input().split())) list map(float, input().split()) map float input().split() ().split () input split low=0 low 0 high=10**9+1 high 10**9+1 10**9 10 9 1 while high-low!=1:
    mid=(high+low)//2
    cut_temp=0
    ans=-1
    
    for a in A:
        cut_temp+=-(-a//mid)-1
    if cut_temp>K:
        low=mid
    else:
        high=mid
     high-low!=1 high-low high low 1 mid=(high+low)//2 mid (high+low)//2 high+low high low 2 cut_temp=0 cut_temp 0 ans=-1 ans -1 for a in A:
        cut_temp+=-(-a//mid)-1
     a A cut_temp+=-(-a//mid)-1 cut_temp -(-a//mid)-1 -(-a//mid) -a//mid -a a mid 1 if cut_temp>K:
        low=mid
    else:
        high=mid
     cut_temp>K cut_temp K low=mid low mid high=mid high mid print(high) print high N,K=map(int,input().split()) map(int,input().split()) N A=list(map(float, input().split())) list(map(float, input().split())) A cut_temp=0 0 cut_temp ans=-1 -1 ans mid=(high+low)//2 (high+low)//2 mid K=map(int,input().split()) map(int,input().split()) K high=mid mid high low=mid mid low cut_temp+=-(-a//mid)-1 -(-a//mid)-1 cut_temp high=10**9+1 10**9+1 high low=0 0 low
# coding: utf-8
# Your code here!
N,K=map(int,input().split())

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

low=0
high=10**9+1

while high-low!=1:
    mid=(high+low)//2
    cut_temp=0
    ans=-1
    
    for a in A:
        cut_temp+=-(-a//mid)-1
    if cut_temp>K:
        low=mid
    else:
        high=mid
    
print(high)