#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 ans; void printResult(){ if(set(ans.begin(), ans.end()).size() != ans.size()){ cout << -1 << endl; return; } for(int i = 0; i < ans.size(); i++){ if(i) cout << " "; cout << ans[i]; } cout << endl; } void solve(int n, int k, int sum){ if(k == K && sum == D) { printResult(); return; } if(k == K - 2 && D - (sum + n) > N) n = D - (sum + N); if(k == K - 1) n = D - sum; ans.push_back(n); solve(n + 1, k + 1, sum + n); } int main(void){ ios_base::sync_with_stdio(0); cin >> N >> D >> K; solve(1, 0, 0); return 0; }