const   fi='';
        nmax=100;
type    data=longint;
var
        f:text;
        A:array[1..nmax] of data;
        n,t,m,s:data;
 
function min(a,b:data):data;
begin
        if a<b then exit(a);
        exit(b);
end;
 
procedure xuli;
var     i,j,k,z,x:data;
begin
        assign(f,fi); reset(f);
        readln(f,t);
        for z:=1 to t do
                begin
                        readln(f,n,m);
                        for x:=1 to n do
                                read(f,a[x]);
                        s:=300100;
                        for i:=1 to n-2 do
                                for j:=i+1 to n-1 do
                                        for k:=j+1 to n do
                                                if a[i]+a[j]+a[k]<=m then
                                                        s:=min(s,m-(a[i]+a[j]+a[k]));
                        writeln(m-s);
                end;
        close(f);
end;
 
begin
        xuli;
end. 