n, s = map(int, input().split()) a = list(map(int, input().split())) a.sort(reverse=True) def solve(x): # x時間以内に終わるか? crr_s = 0 cnt = 0 for i in range(n): if a[i] <= x: break if cnt == 0: crr_s += a[i] cnt += 1 cnt %= x return crr_s < s if max(a) >= s: print(max(a)) else: ok = 10**18 + 5 ng = 0 while ok - ng > 1: mid = (ok + ng) // 2 if solve(mid): ok = mid else: ng = mid print(ok)