#include<cstdio>
#include<vector>
#include<iostream>
#include<map>
#include<set>
#include<string>
#include<cstring>
#include<cmath>
#include<algorithm>
#define lld long long
#define pb push_back
using namespace std;
int rez,niz[1010],x,n,k;
void ispis(){
   if(rez==-1)printf("%d\n",rez);
   else{

    for(int i=1;i<=n;i++)printf("%d ",niz[i]);
    printf("\n");
   }
}
void do3(){

   if(n==1 || n==2){rez=-1;return;}
   if(n==3){niz[1]=1;niz[2]=1+x;niz[3]=niz[2]+x;rez=1;return;}
   if(n==4){niz[1]=1;niz[2]=niz[3]=niz[4]=1+x;rez=1;return;}
   if(n>4){
    niz[1]=niz[2]=niz[3]=1;
    for(int i=4;i<n;i++)niz[i]=2;
    niz[n]=1+x;
    rez=1;
   }
}
void donk(){

   if(n<=2){rez=-1;return;}
   niz[n]=1e6-1;
   niz[n-1]=niz[n]-x+1;
   for(int i=n-2;i>=2;i--)niz[i]=niz[i+1];
   niz[2]--;
   niz[1]=niz[2]-x;

}
void check(){
    if(rez==-1)return;
    int cnt=0;
   for(int i=1;i<=n;i++){
    for(int j=i+1;j<=n;j++)if(abs(niz[i]-niz[j])>=x)cnt++;
   }
   printf("%d\n",cnt);
}
int main(){

    scanf("%d %d %d",&n,&k,&x);

    if(k==3)do3();
    else if(n==k)donk();

//    check();

    ispis();

return 0;
}