#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; //define #define debug(x) cerr << #x << " = " << (x) << " (L" << __LINE__ << ")" << " " << __FILE__ << endl; #define dump(x) cerr << #x << " = " << (x) << endl; #define INF (INT_MAX/2) #define PI (2*acos(0.0)) #define EPS (1e-8) #define REP(i,a,b) for(int i=(a); i<(b);++i) #define rep(i,n) REP(i,0,n) typedef long long ll; typedef unsigned long long ull; typedef pair pii; typedef pair pll; typedef vector vint; typedef vector > vvint; typedef vector vll; typedef vector > vvll; int dx[8] = {0, 1, 0, -1, 1, -1, 1, -1}; int dy[8] = {1, 0, -1, 0, 1, -1, -1, 1}; int N, D, K; vector solve(int N, int D, int K){ vector res; if(K > N){ res.push_back(-1); return res; } int mini = K * (K + 1) / 2; int maxi = N * (N + 1) / 2 - (N - K) * (N - K + 1) / 2; if(D < mini || maxi < D){ res.push_back(-1); return res; } int last = 0; for(int i = 1; i <= K; i++){ maxi = N * (N + 1) / 2 - (N - (K - i)) * (N - (K - i) + 1) / 2; int now = max(D - maxi, last + 1); res.push_back(now); D -= now; last = now; } return res; } int main(void){ ios_base::sync_with_stdio(0); cin >> N >> D >> K; vector res = solve(N, D, K); for(int i = 0; i < res.size(); i++){ if(i) cout << " "; cout << res[i]; } cout << endl; return 0; }