#include <stdio.h>
#include <math.h>
FILE *f,*g;long double l,q,s,ss;long z,c,a[31],b[31],d[200],i,j,n,r,v[31];
int main()
{f=fopen("shop.in","r");fscanf(f,"%ld%ld%Lf",&n,&c,&l);
for(i=1;i<=n;i++){fscanf(f,"%ld%ld",&z,&b[i]);a[z+1]=b[i];}fclose(f);
for(i=1;i<=n;i++)
q=l;while(q){d[++r]=fmod(q,2);q=floorl(q/2);}
for(i=r;i>=1;i--)
{s=0;if(d[i])
while(s<pow(c,i-1))
{for(j=i;j>=1&&s<pow(c,i-1);j--)
if(s+a[j]*pow(c,j-1)<=pow(c,i-1))
{ss+=a[j];v[j]+=a[j];s+=a[j]*pow(c,j-1);a[j]=0;}
else {ss+=floorl((pow(c,i-1)-s)/pow(c,j-1));
v[j]+=floorl((pow(c,i-1)-s)/pow(c,j-1));
a[j]-=floorl((pow(c,i-1)-s)/pow(c,j-1));
s+=floorl((pow(c,i-1)-s)/pow(c,j-1))*pow(c,j-1);
}
}
}
g=fopen("shop.in","r");fscanf(f,"%ld%ld%Lf",&n,&c,&l);
f=fopen("shop.out","w");fprintf(f,"%.0Lf\n",ss);
for(i=1;i<=n;i++)
{fscanf(g,"%ld%ld",&z,&b[i]);fprintf(f,"%ld ",v[z+1]);}
fclose(g);
fclose(f);
return 0;
}