#include using namespace std; #define FOR(i,a,b) for(int i=(a);i<(b);i++) #define REP(i,n) FOR(i,0,n) #define ALL(v) (v).begin(),(v).end() template inline bool chmax(A &a, B b) { if (a inline bool chmin(A &a, B b) { if (a>b) { a=b; return 1; } return 0; } typedef unsigned long long ull; typedef long long ll; typedef pair pii; typedef pair pll; typedef pair P; const ll INF = 1ll<<60; const ll MOD = 1000000007; const double EPS = 1e-10; int main() { int N, D, K; cin >> N >> D >> K; vector ans; int last = 0, sum = 0, cnt = 0; if (N < K) puts("-1"); else if ( (N - (K - 1) + N) * K / 2 < D || (1 + K) * K / 2 > D) puts("-1"); else { while (ans.size() < K) { FOR(i, last + 1, N + 1) { int next = D - sum - i; if ((N - (K - cnt - 2) + N) * (K - cnt - 1) / 2 >= next) { ans.push_back(i); last = i; sum += i; cnt++; break; } } } REP(i, K) printf("%d%c", ans[i], i == K - 1 ? '\n' : ' '); } return 0; }