def judge(x, a, n, m):
# 判断能否组成 x 套牌
need = 0
for i in range(n):
if x > a[i]:
need += x - a[i] # 需要用 Joker 补的张数
return need <= m and need <= x # Joker 不够或超过限制则不行
def max_full_sets(n, m, a):
# 二分查找最大可行的套数
left = 0
right = 10**9
while left <= right:
mid = (left + right) // 2
if judge(mid, a, n, m):
left = mid + 1
else:
right = mid - 1
return right
if __name__ == "__main__":
n, m = map(int, input().split())
a = list(map(int, input().split()))
print(max_full_sets(n, m, a))

京公网安备 11010502036488号