var tmin:array[1..100010] of integer;
a:array[1..100010,1..2] of integer;
f,g:text;
n,m,i,max,c:longint;
procedure quick(s,d:longint);
var i,j,w:longint;
x:real;
begin
i:=s; j:=d; x:=a[(s+d)div 2,2]/a[(s+d)div 2,1];
repeat
while a[i,2]/a[i,1]<x do inc(i);
while a[j,2]/a[i,1]>x do dec(j);
if i<=j then
begin
w:=a[i,1]; a[i,1]:=a[j,1]; a[j,1]:=w;
w:=a[i,2]; a[i,2]:=a[j,2]; a[j,2]:=w;
inc(i); dec(j);
end
until i>j;
if i<d then quick(i,d);
if s<j then quick(s,j);
end;
begin
assign(f,'garaj.in');reset(f);
assign(g,'garaj.out');rewrite(g);
readln(f,n,m);
for i:=1 to n do begin
readln(f,a[i,1],a[i,2]);
a[i,2]:=2*a[i,2];
end;
quick(1,n);
i:=1;
while m>0 do begin
if i=1 then begin
while (tmin[i]<=a[i+1,2]) or (tmin[i]<=tmin[i+1]) do begin
m:=m-a[i,1];
tmin[i]:=tmin[i]+a[i,2];
end;
inc(i);
end
else begin
while tmin[i]+a[i,2]<=tmin[i-1] do begin
m:=m-a[i,1];
tmin[i]:=tmin[i]+a[i,2];
end;
if i=n then i:=1 else
if (tmin[i-1]+a[i-1,2])<=(tmin[i+1]+a[i+1,2]) then dec(i) else
inc(i);
end;
end;
c:=0;max:=0;
for i:=1 to n do
if tmin[i]>0 then begin inc(c);
if tmin[i]>max then max:=tmin[i];
end;
writeln(g,max,' ',c);
close(g);
end.