#include <bits/stdc++.h>
bool rcd[100][20001], vis[100][20001];
int n, d, l, link[100][20001];
bool dp(int t, int v) {
  if (t == n && v == d + 10000) return true;
  if (t == n) return false;
  if (vis[t][v]) return rcd[t][v];
  bool suc = false;
  int sym = (t % 2) ? -1 : 1;
  for (int i = 1; i <= l; i++) {
    if (dp(t + 1, v + sym * i)) {
      suc = true;
      link[t][v] = v + sym * i;
      break;
    }
  }
  vis[t][v] = true;
  return rcd[t][v] = suc;
}
int main() {
  scanf("%d%d%d", &n, &d, &l);
  if (!dp(0, 0 + 10000))
    puts("-1");
  else {
    int t = 0, v = link[0][10000], last = 10000;
    while (t < n) {
      printf("%d", (t % 2) ? last - v : v - last);
      last = v;
      t++;
      v = link[t][v];
      if (t != n) printf(" ");
    }
    puts("");
  }
}
