#include <fstream>
#include <algorithm>
#define nmx 100005
using namespace std;
long long n,m,a,b,c[nmx],t[nmx],p[nmx],r,rsp;
bool tryit(long long x)
{
rsp=0;
for (int i=1;i<=n;i++)
rsp+=x/t[i]*c[i];
return rsp>=m;
}
int main()
{
ifstream f ("garaj.in");
ofstream g ("garaj.out");
f>>n>>m;
for (int i=1;i<=n;i++)
{
f>>c[i]>>t[i];
t[i]*=2;
}
long long st=1,dr=1000000000000000,mid,sol;
while (st<=dr)
{
mid=(st+dr)/2;
if (tryit(mid))
{
sol=mid;
r=rsp;
dr=mid-1;
}
else st=mid+1;
}
g<<sol<<'\n';
for (int i=1;i<=n;i++)
p[i]=sol/t[i]*c[i];
sort (p+1,p+n+1);
int cam=n;
for (int i=1;i<=n;i++)
{
if (r-p[i]>=m)
{
r-=p[i];
cam--;
}
else break;
}
g<<cam;
}