import java.util.Arrays; import java.util.HashSet; import java.util.LinkedList; import java.util.Scanner; import java.util.Set; public class Main { public static LinkedList dfs(final int deep, final int K, final int N, int start, int purpose){ if(deep >= K){ if(purpose == 0){ return new LinkedList(); }else{ return null; } } final int rest = K - deep; final int maximum = N * rest; if(purpose > maximum){ return null; } //System.out.println(deep + " " + start + " " + purpose); for(int price = start; price <= N; price++){ if(purpose - price < 0){ break; } LinkedList ret = dfs(deep + 1, K, N, price + 1, purpose - price); if(ret != null) { ret.addFirst(price); return ret; } } return null; } public static void main(String[] args){ Scanner sc = new Scanner(System.in); final int N = sc.nextInt(); final int D = sc.nextInt(); final int K = sc.nextInt(); LinkedList ret = dfs(0, K, N, 1, D); if(ret == null){ System.out.println(-1); return; } boolean first = true; for(final int val : ret){ if(first){ first = false; }else{ System.out.print(" "); } System.out.print(val); } System.out.println(); } }