# n,m=map(int,input().split())
# a=[]
# c=[[0 for i in range(8)]for j in range(8)]
# mi=int(2100000000)
# b=int(0)
# w=int(0)
# t=int(0)
# for i in range(n):
# q=input()
# a.append(list(q))
# for i in range(n-7):
# for j in range(m-7):
# for ii in range(8):
# for jj in range(8):
# c[ii][jj]=a[i+ii][j+jj]
# for ii in range(8):
# for jj in range(8):
# if ii%2==jj%2:
# if c[ii][jj]=='B':
# w=w+1
# else:
# if c[ii][jj]=='W':
# w=w+1
# for ii in range(8):
# for jj in range(8):
# if ii%2!=jj%2:
# if c[ii][jj]=='B':
# b=b+1
# else:
# if c[ii][jj]=='W':
# b=b+1
# t=min(w,b)
# mi=min(mi,t)
# # for ii in range(8):
# # for jj in range(8):
# # print(c[ii][jj],end=' ')
# # print()
# # print(w,b)
# w=0
# b=0
# print(mi)
# s=[]
# while 1:
# q=input()
# if q=='.':
# break
# a=list(q)
# for i in range(len(a)):
# if a[i]=='(':
# s.append(1)
# elif a[i]=='[':
# s.append(3)
# elif a[i]==')':
# if len(s)!=0 and s[-1]==1:
# s.pop()
# else:
# s.append(2)
# elif a[i]==']':
# if len(s)!=0 and s[-1]==3:
# s.pop()
# else:
# s.append(4)
# if len(s)==0:
# print('yes')
# else:
# print('no')
# s=[]
k,n=map(int,input().split())
a=[]
b=[0 for i in range(k)]
for i in range(k):
q=int(input())
a.append(q)
p=max(a)
g=p//2
# print(g)
while 1:
if k==n:
g=min(a)
break
for i in range(k):
b[i]=a[i]//g
if sum(b)==n:
break
elif sum(b)<n:
g=g//2
else:
g=g+(p-g)//2
# print(b)
# print(g)
print(g)



