k, want = map(int,input().split())
arr = list(map(int,input().split()))
start, end = 0, max(arr)
while start <= end:
pivot = (start+end) // 2
sum_of_wood = 0
for wood in arr:
if wood - pivot > 0: # (중요) 자른게 없는 경우는 더하면 안됨!
sum_of_wood += (wood - pivot) # (중요) 랜선과 이게 다름! 나머지를 넣어줌
# 내가 원한 길이가 부족하다면 -> 더 잘라야 -> 절단기 낮춰!
if sum_of_wood < want:
end = pivot -1
# 내가 원한 길이보다 많아 -> 줄일 필요가 있어 -> 절단기 위로!
else:
start = pivot + 1
print(end) # 마찬가지로 가능한 최댓값(end)
import sys
k, want = map(int,sys.stdin.readline().split())
arr = list(map(int,sys.stdin.readline().split()))
start, end = 0, max(arr)
while start <= end:
pivot = (start+end) // 2
sum_of_wood = 0
for wood in arr:
if wood - pivot > 0: # (중요) 자른게 없는 경우는 더하면 안됨!
sum_of_wood += (wood - pivot) # (중요) 랜선과 이게 다름! 나머지를 넣어줌
# 내가 원한 길이가 부족하다면 -> 더 잘라야 -> 절단기 낮춰!
if sum_of_wood < want:
end = pivot -1
# 내가 원한 길이보다 많아 -> 줄일 필요가 있어 -> 절단기 위로!
else:
start = pivot + 1
print(end) # 마찬가지로 가능한 최댓값(end)