n, m = list(map(int, input().split('')))
array = list(map(int, input().split()))
start = 0
end = max(array)
result = 0
while(start <= end):
total = 0
mid = (start + end) // 2
for x in array:
#잘랐을 때 나무의 양 계산
if x > mid:
total += x - mid
#나무의 양이 부족한 경우 더 많이 자르기 (왼쪽 탐색)
if total < m:
end = mid - 1
#나무의 양이 충분한 경우 덜 자르기(오른쪽 탐색)
else:
result = mid #최대한 덜 잘랐을 때가 정답이므로, 여기에서 result 기록
start = mid + 1
print(result)