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]))