#include #include #include using namespace std; void dfs(vector&v,int s,int t,int i,int n,int d,int k){ if(d==k-1){ int x=t-s; if(i<=x&&x<=n){ for(int j=0;j=t)break; } for(;i<=n;i++){ //s+(i〜(i+k-d-1)の和)<=t if(s+(k-d)*(2*i+(k-d-1))/2<=t){ v.push_back(i); dfs(v,s+i,t,i+1,n,d+1,k); v.pop_back(); } } } } int main(){ int n,d,k; scanf("%d%d%d",&n,&d,&k); vectorv; dfs(v,0,d,1,n,0,k); puts("-1"); }