브루트 포스: 조합 가능한 모든 경우의 수를 대입
N,M=map(int, input().split(' '))
card_list=list(map(int, input().split(' ')))
sum_list=[]
for i in range(N):
for j in range(N):
if i>=j:
continue
for k in range(N):
if j>=k or i>=k:
continue
if card_list[i]+card_list[j]+card_list[k]<=M:
sum_list.append(card_list[i]+card_list[j]+card_list[k])
print(max(sum_list))