#include "redica.h"
#include <bits/stdc++.h>
using namespace std;
vector <int> v;
int n,k,s;
long long dp[303][10003],pf[303][10003];
void dfs(int sum,int beg,int pos)
{
    v.push_back(beg);
    sum-=beg;
    if(pos==n)
    {
        if(sum==0)
            submit(v);
        v.pop_back();
        return;
    }
    if(sum<(n-pos)||sum>k*(n-pos))
    {
        v.pop_back();
        return;
    }
    for(int i=1; i<=min(k,sum); i++)
    {
        dfs(sum,i,pos+1);
    }
    v.pop_back();
}
void solve(int n, int k, int s)
{
    ::n=n;
    ::k=k;
    for(int i=1; i<=k; i++)
    {
        dp[1][i]=1;
        pf[1][i]=i;
    }
    for(int i=1;i<=s;i++)pf[1][i]=pf[1][i-1]+dp[1][i];
    for(int i=2; i<=n; i++)
    {
        for(int sum=1; sum<=s; sum++)
        {
            if(dp[i][sum]>1e9)continue;
            dp[i][sum]+=pf[i-1][sum-1]-pf[i-1][max(0,sum-k-1)];
        }
        for(int j=1;j<=s;j++)pf[i][j]=pf[i][j-1]+dp[i][j];
    }
    int lp=0;
    for(int i=1; i<=n; i++)
    {
        if(dp[i][s]<=1e6/n)
        {
            lp=i;
        }
    }
    for(int i=1; i<=n-lp; i++)
    {
        int ve=query();
        v.push_back(ve);
        s-=ve;
    }
    for(int i=1; i<=k; i++)
    {
        if(i<=s)
        {
            dfs(s,i,max(n-lp+1,1));
        }
    }
}
