import java.util.*; public class Main { static int n; static int d; static int k; public static void main (String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); d = sc.nextInt(); k = sc.nextInt(); ArrayDeque deq = getSnacks(1, 0, 0); if (deq == null) { System.out.println(-1); return; } StringBuilder sb = new StringBuilder(); for (int i = 0; deq.size() > 0; i++) { if (i != 0) { sb.append(" "); } sb.append(deq.pollFirst()); } System.out.println(sb); } static ArrayDeque getSnacks(int idx, int used, int total) { if (d - total <= used) { return null; } if (idx == k) { if (d - total > n) { return null; } else { ArrayDeque deq = new ArrayDeque<>(); deq.add(d - total); return deq; } } for (int i = used + 1; i < n; i++) { if ((d - total - i) / (k - idx) > n) { continue; } ArrayDeque deq = getSnacks(idx + 1, i, total + i); if (deq != null) { deq.addFirst(i); return deq; } } return null; } }