{
TASK:lift
LANG:Pascal
}
program lift;
type mas=array[0..15] of integer;
var h,w,h1,w1:mas;
    t,n,i,j,k,z:integer;
    b:boolean;
begin
readln(n,t);
for i:=1 to n do
readln(h[i],w[i]);


for j:=1 to n do
for i:=1 to n-1 do
if h[i]>=h[i+1] then
begin
k:=h[i];
h[i]:=h[i+1];
h[i+1]:=k;
k:=w[i];
w[i]:=w[i+1];
w[i+1]:=k;
end;
b:=false;
z:=0;

for i:=n downto 2 do
for j:=i to n do

begin
if i<>j then
if w[i]+w[j]<=t then

begin
z:=z+h[i]+h[j];
h[i]:=0;
w[i]:=0;
break;
end

else

begin
b:=true;
break;
end;

end;
z:=z+h[1];
if b=false then writeln(z) else writeln(0);
end.
