#include <bits/stdc++.h>
using namespace std;

#define loop(i,n) for(int i=0;i<n;i++)
int n,m;
int p[1002];
int pp[1111111];

signed main(){
  while(cin>>n>>m,n){
    loop(i,n)cin>>p[i];
    p[n++]=0;
    loop(i,n)loop(j,n){
      pp[i*n+j]=m-p[i]-p[j];
    }
    sort(pp,pp+n*n);
    int res=0;
    loop(i,n)loop(j,n){
      int s=p[i]+p[j];
      int t=*lower_bound(pp,pp+n*n,s);
      if(t>0)res=max(res,s-t+m);
    }
    cout<<res<<endl;
  }
  return 0;
}