#include using namespace std; #define rep(i, n) for (int i = 0; i < (n); ++i) using ll = long long; using ull = unsigned long long; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n, d, k; cin >> n >> d >> k; vector dp(d + 1, vector(k + 1, -1)); dp[0][0] = 0; for (int p = 1; p <= n; ++p) { for (int i = d; i >= 0; --i) { for (int j = k - 1; j >= 0; --j) { if (dp[i][j] == -1) continue; if (i + p <= d) { dp[i + p][j + 1] = i; break; } } } } if (dp[d][k] == -1) { cout << -1 << '\n'; } else { vector ans; int cur = d; for (int x = k; x > 0; --x) { // cerr << cur << ' ' << x << ' ' << dp[cur][x] << '\n'; ans.push_back(cur - dp[cur][x]); cur = dp[cur][x]; } reverse(ans.begin(), ans.end()); assert(is_sorted(ans.begin(), ans.end())); rep(i, k) cout << ans[i] << ' '; cout << '\n'; } return 0; }