#include <bits/stdc++.h>
using namespace std;
const int N=1050;
vector<int> sz;
map<int,bool> was[N];
bool Bck(int k, int n)
{
	if(n==0) return k==0;
	if(was[n][k]) return 0;
	for(int i=n;i>=1;i--)
	{
		if(k>=i*(i-1)/2)
		{
			sz.push_back(i);
			if(Bck(k-i*(i-1)/2,n-i)) return 1;
			sz.pop_back();
		}
	}
	was[n][k]=1;
	return 0;
}
int main()
{
    int n,k,x,i,j;
    scanf("%i %i %i",&n,&k,&x);
    if(k==n*(n-1)/2)
	{
		for(int i=1;i<=n;i++) printf("%i ",x*i-x+1);
		return 0;
	}
	if(k==0)
	{
		for(int i=1;i<=n;i++) printf("1 ");
		return 0;
	}
    int d=-1;
    for(int i=1;i<=n;i++)
	{
		if(k%i==0 && k/i+i<=n)
		{
			d=i;break;
		}
	}
	if(d==-1) goto nastavi;
	for(int i=1;i<=d;i++) printf("%i ",x);
	for(int i=1;i<=k/d;i++) printf("%i ",x*2);
	for(int i=1;i<=n-d-k/d;i++) printf("%i ",x+1);
	return 0;
	nastavi:
    d=n;
    k=n*(n-1)/2-k;
    if(Bck(k,n))
	{
    /*for(int i=n;i>=1;i--)
	{
		while(d>=i && k>=i*(i-1)/2)
		{
			k-=i*(i-1)/2;
			sz.push_back(i);
			d-=i;
		}
	}
	if(k!=0 || d!=0) return 0*printf("-1\n");*/
	int v=1;
	for(i=0;i<sz.size();i++)
	{
		for(j=1;j<=sz[i];j++) printf("%i ",v);
		v+=x;
	}
	return 0;
	}
	k=n*(n-1)/2-k;
	int a=0,b,c;d=1;
	for(a=1;a<k;a++)
	{
		//printf("%i %i %i %i\n",a,k%a,k/a-1,1);
		if((k%a)+k/a+a==n)
		{
			b=k%a;
			c=k/a-1;
			break;
		}
	}
	if(a==k) return 0*printf("-1\n");
	for(i=1;i<=a;i++) printf("1 ");
	for(i=1;i<=b;i++) printf("2 ");
	for(i=1;i<=c;i++) printf("%i ",x+1);
	for(i=1;i<=d;i++) printf("%i ",x+2);
	return 0;
}