#include<stdio.h>
#define N 31
long long l,y;
long n,c,a[N],b[N],m,j,i,x[N],z;
long long put(long x,long n)
{if(!n)
return 1;
if(n%2)
return x*put(x,(n-1)/2)*put(x,(n-1)/2);
return put(x,n/2)*put(x,n/2);}
long min(long x,long y)
{return x<y?x:y;}
int main()
{FILE *f=fopen("shop.in","r"),*g=fopen("shop.out","w");
fscanf(f,"%ld%ld%lld",&n,&c,&l);
for(i=1;i<=n;i++)
fscanf(f,"%ld%ld",&a[i],&b[i]);
while(l)
{m=-1,j=0;
for(i=1;i<=n;i++)
if(m<a[i])
m=a[i],j=i;
y=put(c,m);
x[j]=min(l/y,b[j]);
a[j]=-1,l-=(x[j]*y),z+=x[j];}
fprintf(g,"%ld\n",z);
for(i=1;i<=n;i++)
fprintf(g,"%ld ",x[i]);
return 0;}