N, S = map(int, input().split()) A = sorted(list(map(int, input().split()))) def check(X): i, T = 0, 1 while i < N: if A[i] <= X: i += 1 continue i = min(N, i + X) T += A[i - 1] return T <= S ng, ok = 0, 10 ** 10 while ok - ng > 1: mid = (ok + ng) // 2 if check(mid): ok = mid else: ng = mid print(ok)