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