2798번 블랙잭
카드 장수와 기준이 되는 숫자가 주어지고 각 카드의 숫자가 주어진다.
카드들 중 세장을 더 했을 때 기준이 되는 숫자보다 작지만 가장 가까운 수를 구하는 문제.
n,m = map(int,input().split()) # 카드 개수 n ,기준 수 m
card = list(map(int,input().split())) # 카드숫자 리스트
ans = [] # 빈 리스트 생성
# 빈 리스트에 세장의 합이 기준이 되는 숫자 m 보다 작은 모든 경우의 수를 채웠다.
for x in range(0, n-2):
# 카드의 순서가 고정이 되어있다면 첫번째 카드는 마지막 두장은 순회를 돌지 않아도 된다.
for y in range(x+1, n-1):
# 두번째 카드는 첫번째 카드 다음부터 순차적으로 순회 도는데 마지막 한장은 제외한다.
for z in range(y+1,n):
# 세번째 카드는 두번째 카드 다음부터 순회를 돈다.
if card[x]+card[y]+card[z] <= m:
ans.append(card[x]+card[y]+card[z])
# 세장의 카드의 수를 더한 값이 기준 숫자보다 작으면 리스트에 추가하고
print(max(ans)) # 그 중 가장 큰 수를 출력하도록 했다.