# include <fstream>
# include <algorithm>
using namespace std;
ifstream f("garaj.in");
ofstream g("garaj.out");
int TIMP,i,j,minn,n,M,VV,pot[100005];
struct elem
{
int c, timp;
}a[100005];
int cmp (elem x, elem y)
{
if (x.timp>=y.timp) return 0;
else return 1;
return 1;
}
void cb ()
{
int i,sum,ci=1,cs=2*n,mij;
while (ci<=cs)
{
mij=(ci+cs)/2;
sum=0; VV=0;
for (i=1; i<=n; ++i)
{
++VV;
if (2*a[i].timp<=mij)
{
sum+=mij/(2*a[i].timp)*a[i].c;
}
else break;
if (sum>=M) break;
}
if (sum>=M) TIMP=mij,cs=mij-1;
else ci=mij+1;
}
}
void numara ()
{
int i,sum=0;;
for (i=1; i<=n; ++i)
pot[i]=TIMP/(2*a[i].timp)*a[i].c;
sort (pot+1,pot+n+1);
for (i=n; i>=1; --i)
{
++minn;
sum+=pot[i];
if (sum>=M) break;
}
}
int main ()
{
f>>n>>M;
for (i=1; i<=n; ++i)
f>>a[i].c>>a[i].timp;
sort (a+1,a+n+1,cmp);
cb (); numara ();
g<<TIMP<<" "<<minn<<"\n";
return 0;
}