#include <bits/stdc++.h>
#define r(i,n) for(int i = 0; i<n; i++)
typedef long long ll;
using namespace std;

int main(){
  int n,m;
  while(cin >> n >> m,n&&m){
    int ans=0;
  vector<int> v1(n),v2;
  r(i,n)cin >> v1[i];
  v1.push_back(0);
  n++;
  
  r(i,n)r(j,n)v2.push_back(v1[i]+v1[j]);
  
  sort(v2.begin(),v2.end());
   
  int j=n*n-1;
  r(i,n*n){
    while(j>i&&v2[i]+v2[j]>m)j--;
    if(v2[i]+v2[j]<=m)ans=max(ans,v2[i]+v2[j]);
  }
  cout<<ans<<endl;
  }
}
