#include <bits/stdc++.h>
using namespace std;
long long suf(long long a) { return (a * (a + 1)) / 2; }
const long long OO = 1e6 + 10, MOD = 1e6 + 3;
vector<vector<int> > adj, can;
int dx[]{1, -1, 0, 0, 1, -1, 1, -1};
int dy[]{0, 0, 1, -1, 1, -1, -1, 1};
int main() {
  std::ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  long long n, m, a, b, c, d, e, f, l;
  while (cin >> n >> d >> l) {
    int pos = ceil(n / 2.), neg = n / 2, pos1 = -1, neg1 = -1;
    for (int i = 1; i <= 10005; i++) {
      for (int j = 1; j <= 10005; j++) {
        if (i - j == d) {
          if (i / pos >= 1 && ceil(i / double(pos)) <= l && j / neg >= 1 &&
              ceil(j / double(neg)) <= l) {
            pos1 = i, neg1 = j;
            goto hell;
          }
        }
      }
    }
  hell:;
    if (pos1 != -1) {
      vector<int> Postive(pos, pos1 / pos);
      pos1 %= pos;
      for (int i = 0; i < pos1; i++) {
        Postive[i]++;
      }
      vector<int> Negative(neg, neg1 / neg);
      neg1 %= neg;
      for (int i = 0; i < neg1; i++) {
        Negative[i]++;
      }
      while (!Postive.empty() || !Negative.empty()) {
        if (!Postive.empty()) cout << Postive.back() << " ", Postive.pop_back();
        if (!Negative.empty())
          cout << Negative.back() << " ", Negative.pop_back();
      }
    } else
      cout << "-1" << endl;
  }
  return 0;
}
