N,S = list(map(int,input().split())) S *= 10**6 A = list(map(lambda x:int(x)*10**6,input().split())) A.sort() def check(n): v = S - len([i for i in A if i <= n * 10**6]) B = [i for i in A if i > n * 10**6] for i in B:v -= i+1 return v >= 0 check(1) ng,ok = 0,10**18 while(ok - ng > 1): mid = (ok+ng)//2 if(check(mid)): ok = mid else: ng = mid print(ok)