#define _USE_MATH_DEFINES #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef pair i_i; typedef pair ll_i; typedef pair d_i; typedef pair ll_ll; typedef pair d_d; struct edge { int u, v; ll w; }; ll MOD = 1000000007; ll _MOD = 1000000009; double EPS = 1e-10; int INF = INT_MAX / 2; bool check(int l, int r, int D, int K) { if (r - l + 1 < K) return false; int lb = 0, ub = 0; for (int i = 0; i < K; i++) { lb += l + i; ub += r - i; } return D >= lb && D <= ub; } int main() { int N, D, K; cin >> N >> D >> K; if (!check(1, N, D, K)) { cout << -1 << endl; return 0; } for (int i = 1; i <= N; i++) if (check(i + 1, N, D - i, K - 1)) { D -= i; K--; cout << i << ' '; } cout << endl; }