#include<iostream>
using namespace std;
int n,k,x,y[1000];
bool ind=true;
void unos()
{
    cin>>n>>k>>x;
}
void niz(int &s,int a,int i,int &p)
{
    for(int j=1;j<=a;j++)
    {
        if (s>1)
        {
            s--;
            y[p]=i;
            //cout<<p<<' '<<y[p]<<endl;
            p++;
        }
    }
}
void ispis()
{
    int i=1,j,l,s=0,p=0,d;
    s=n-1;
    for(j=2;s<k;j++)
        s+=n-j;
   // cout<<j-2;
    s=n-(j-2);
    if (k==0)
    {
        while(s>1)
        {
            niz(s,k,i,p);
            i++;
        }
    }
    else if (k==n)
    {
        for(i=1;i<=n;i++)
            cout<<i*x<<' ';
    }
    else
    {
        //l=n/x;
        //cout<<l;
        while(s>1)
        {
            if (i>x)
                ind=false;
            niz(s,k,i,p);
            i++;
        }
    d=i;
    cout<<i<<endl;
    if (ind)
    {
    for(i=0;i<p;i++)
        cout<<y[i]<<' ';
    for(i=1;i<=(j-2)+1;i++)
        cout<<i*(x+d-1)<<' ';
    }
    else
        cout<<-1;

    }

}
int main()
{
    unos();
    ispis();
}