{
TASK:lift
LANG:Pascal
}



type ppl=record
 p,m:integer;
 end;
var
a:array [1..15] of ppl;
s,n,t,i,mmin,mmin2,mmax,hmax:integer;


{procedure Sort(l, r: Integer);
var
  i, j, x, y: integer;
begin
  i := l; j := r; x := a[(l+r) DIV 2];
  repeat
    while a[i] < x do i := i + 1;
    while x < a[j] do j := j - 1;
    if i <= j then
    begin
      y := a[i]; a[i] := a[j]; a[j] := y;
      i := i + 1; j := j - 1;
    end;
  until i > j;
  if l < j then Sort(l, j);
  if i < r then Sort(i, r);
end;}


begin
read(n,t);
for i:=1 to n do
begin
read(a[i].p,a[i].m);

if a[i].p>hmax then hmax:=a[i].p;

if mmin>a[i].m then begin mmin2:=mmin; mmin:=a[i].m; end;

if mmax<a[i].m then mmax:=a[i].m;
end;

if (mmax>t)or(mmin2+mmin>t) then begin writeln('0'); halt(0); end;

if i<>3 then writeln(hmax)
else

for i:=1 to n do
s:=s+a[i].p;
writeln(s);



end.
