#include <stdio.h>
#include <stdlib.h>
int a[101][101],x[101],y[101],leg[101][101],la[101],lb[101],l;
int verif(int t,int n)
{
int i,j,max,p,k;
for(i=1; i<=n; i++)
for(j=0; j<=l; j++)
a[i][j]=leg[i][j]=0;
for(i=1; i<=n; i++)
for(j=0; j<=l; j++)
{
max=-1;
p=0;
for(k=j; k>=0 && i>1; k--)
if((t-x[i]*(j-k))/y[i]+a[i-1][k]>max && (t-x[i]*(j-k))>=0)
max=(t-x[i]*(j-k))/y[i]+a[i-1][k],p=k;
if(i==1)
if((t-x[i]*j)/y[i]>max && (t-x[i]*j)>=0)
max=(t-x[i]*j)/y[i];
a[i][j]=max;
leg[i][j]=j-p;
}
if(a[n][l]>=l) return 1;
return 0;
}
int main()
{
int n,i,j,pas,ct,k;
freopen("lapte.in","r",stdin);
freopen("lapte.out","w",stdout);
scanf("%d%d",&n,&l);
for(i=1; i<=n; i++)
scanf("%d%d",&x[i],&y[i]);
//for(i=0; i<=l; i++)
//a[0][i]=-1000000;
j=0;
pas=1<<7;
while(pas)
{
if(verif(j+pas,n)) ;
else j+=pas;
pas/=2;
}
j++;
ct=verif(j,n);
printf("%d\n",j);
k=l;
for(i=n; i>0; i--)
{
la[i]=leg[i][k];
k-=leg[i][k];
}
for(i=1; i<=n; i++)
printf("%d %d\n",la[i],(j-la[i]*x[i])/y[i]);
return 0;
}