#include <bits/stdc++.h>
using namespace std;

vector <int> vec;
int niz[1005];

int main(){
    ios_base::sync_with_stdio(false);

    int n, k, x;
    cin >> n >> k >> x;
    if(k == 0){
        for(int i=1; i<=n; i++) cout << 1 << " ";
        return 0;
    }
    if(k == n && n > 7){
        if(n%2 == 0){
            for(int j=1; j<=n/2; j++) niz[j] = 1;
            for(int j=n/2+1; j<=n-2; j++) niz[j] = 2;
            niz[n-1] = x+1;
            niz[n] = x+1;
            for(int i=1; i<=n; i++) cout << niz[i] << " ";
        }
        else{
            cout << niz[-1];
        }
        return 0;
    }
    int t = 1;
    while(1){
        if(t*(t+1)/2 <= k && (t+1)*(t+2)/2 > k) break;
        t++;
    }
    int rz = (t+1)*(t+2)/2 - k;
    for(int i=1; i<=t+1; i++){
        if(rz != i) vec.push_back(i);
    }
    int r = vec.size();
    int jos = n-r-x;
    for(int i=1; i<=jos; i++) niz[i] = 1;
    for(int i=jos+1; i<=n-r; i++) niz[i] = i-jos;
    for(int i=n-r+1; i<=n; i++){
        niz[i] = niz[vec[i-(n-r+1)]] + x;
    }
    if(niz[n] >= 1000000){
        cout << -1;
        return 0;
    }
    int cnt = 0;
    /*for(int i=1; i<=n; i++){
        for(int j=1; j<i; j++){

        }
    }*/
    /*if(cnt != k){
        cout << -1;
        return 0;
    }*/
    for(int i=1; i<=n; i++) cout << niz[i] << " ";
    return 0;
}