import java.util.Scanner;
public class BlackJack {
public static void main(String[] args) {
// 1. 입력받기 위해 스캐너를 생성한다.
Scanner sc = new Scanner(System.in);
// 2. 입력받을 카드 개수와 카드의 합을 입력받는다.
int N = sc.nextInt();
if(N<10 & N>100) {
return;
}
int M = sc.nextInt();
if(M<10 & M>300000) {
return;
}
// 3. 카드를 입력받는다.
int[] intArray = new int[N];
for(int i=0; i<N; i++) {
intArray[i] = sc.nextInt();
if(intArray[i]<1 || intArray[i]> 100000) {
return;
}
}
// 4. M을 넘지 않으면서 M에 최대한 가까운 카드 3장의 합을 구한다.
int total = 0;
for(int i=0; i<N; i++) {
for(int j=i+1; j<N; j++) {
for(int k=j+1; k<N; k++) {
int num = intArray[i]+intArray[j]+intArray[k];
if(num<=M & num>total) {
total = num;
}
}
}
}
// 5. 출력
System.out.println(total);
}
}
https://www.acmicpc.net/problem/2798