#include<iostream>
#include<algorithm>
#include<fstream>
#include<math.h>
using namespace std;
ifstream f("shop.in");
ofstream g("shop.out");
struct numar
{
int a,b,x;
}t[35];
int n,i,c,k,sol[35],rs;
long long l;
bool cond(numar c,numar d)
{
return c.a>d.a;
}
int main()
{
f>>n>>c>>l;
for(i=1;i<=n;i++)f>>t[i].a>>t[i].b,t[i].x=i;
sort(t+1,t+n+1,cond);
rs=0;
for(i=1;i<=n;i++)
{
k=0;
while(t[i].b>0&&l-pow(c,t[i].a)>=0)l-=pow(c,t[i].a),t[i].b--,k++;
sol[t[i].x]=k;
rs+=k;
}
g<<rs<<'\n';
for(i=1;i<=n;i++)g<<sol[i]<<' ';
return 0;
}