{
TASK:lift
LANG:Pascal
}
type Masiv = array[1..15] of Integer;

var
  wei,hei,s: Masiv;
  n,t,br: Integer;
  sum,pom,tekhei: LongInt;
  i: Integer;
  fl: Boolean;

begin
  readln(n,t);
  for i:= 1 to n do
    readln(wei[i],hei[i]);

  repeat
    fl:= false;
    for i:= 1 to n-1 do
      if wei[i] < wei[i+1] then
      begin
        pom:= wei[i];
        wei[i]:= wei[i+1];
        wei[i+1]:= pom;

        pom:= hei[i];
        hei[i]:= hei[i+1];
        hei[i+1]:= pom;
        fl:= true;
      end;
  until fl=false;

  br:= 0;
  pom:= wei[1];
  tekhei:= hei[1];
  i:= 2;
  fl:= false;
  repeat
    if (tekhei + hei[i] <= t) and (i < n) then
    begin
      tekhei:= tekhei + hei[i];
    end
    else
    begin
      br:= br+1;
      s[br]:= pom;
      pom:= wei[i];
      tekhei:= hei[i];
      i:= i+1;
      fl:= true;
    end;
    if not fl then
      i:= i+1
    else
      fl:= false;
  until i > n+1;

  sum:= 0;
  for i:= br downto 2 do
    sum:= sum + 2*s[i];
  sum:= sum + s[1];
  writeln(sum);
end.










