#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main()
{
	for(int n,m;cin>>n>>m,n|m;){
		vector<int> p(n);
		for(int i=0;i<n;i++)
			cin>>p[i];
		vector<int> a;
		a.push_back(0);
		a.insert(a.end(),p.begin(),p.end());
		for(int i=0;i<n;i++)
			for(int j=0;j<n;j++)
				a.push_back(p[i]+p[j]);
		sort(a.begin(),a.end());
		a.erase(unique(a.begin(),a.end()),a.end());
		
		int res=0;
		for(int i=0;i<a.size();i++){
			int j=upper_bound(a.begin(),a.end(),m-a[i])-a.begin();
			if(j)
				res=max(res,a[i]+a[j-1]);
		}
		cout<<res<<endl;
	}
	
	return 0;
}