N, M = map(int, input().split()) A = list(map(int, input().split())) A.sort(reverse=True) dp = [[0] * (M + 1) for _ in range(N + 1)] for i in range(N - 1): for m in range(M + 1): dp[i + 2][m] = dp[i + 1][m] for m in range(M + 1): new_m = m + A[i] - A[i + 1] if new_m > M: continue if dp[i + 2][new_m] < dp[i][m] + A[i]: dp[i + 2][new_m] = dp[i][m] + A[i] print(max(dp[N]))