#include<stdio.h>
long long n,t,i,c[18][18],v[18][18],nv_min,c_min[18];
void solve(long long nv,long long nm);
long long poz(long long c1,long long c2,long long v1,long long v2);
long long vit(long long v1,long long v2);
int main()
{
FILE *f=fopen("vanatoare.in","r"),
*g=fopen("vanatoare.out","w");
fscanf(f,"%lld%lld",&n,&t);
for(i=1;i<=n;i++) fscanf(f,"%lld%lld",&c[n][i],&v[n][i]);
nv_min=n;
for(i=1;i<=n;i++) c_min[i]=c[n][i];
solve(1,n);
fprintf(g,"%lld\n",nv_min);
for(i=1;i<=nv_min;i++)
fprintf(g,"%lld ",c_min[i]);
fcloseall();
return 0;
}
void solve(long long nv,long long nm)
{ long long ii,jj,cn,vn;
if(nv>=nv_min)return;
if(nv==nm)
{nv_min=nv;for(ii=1;ii<=nv;ii++)c_min[ii]=c[nm][ii];return;}
for(ii=1;ii<=nv;ii++)
{ cn=poz(c[nm][ii],v[nm][ii],c[nm][nv+1],v[nm][nv+1]);
if(cn>t)continue;
vn=vit(v[nm][ii],v[nm][nv+1]);
for(jj=1;jj<=nv;jj++)
{ c[nm-1][jj]=c[nm][jj];v[nm-1][jj]=v[nm][jj];}
c[nm-1][ii]=cn;v[nm-1][ii]=vn;
for(jj=nv+1;jj<nm;jj++)
{ c[nm-1][jj]=c[nm][jj+1];v[nm-1][jj]=v[nm][jj+1];}
solve(nv,nm-1);
}
solve(nv+1,nm);
}
long long poz(long long c1,long long v1,long long c2,long long v2)
{ long long p1,p2;
p1=c1;p2=c2;
for(;;)
{ if(p1>t||p2>t||p1==p2)break;
if(p1<p2)p1+=v1;
else p2+=v2;
}
if(p1>t||p2>t)return t+1;
return p1;
}
long long vit(long long v1,long long v2)
{ long long mare,mic,aux;
mare=v1;mic=v2;
while(mic)
{ aux=mic;mic=mare%mic;mare=aux;}
mic=v1/mare;mic*=v2;
return mic;
}