#include <vector>
#include <iostream>
#include <iomanip>
using namespace std;
void Generate(int N, int K, vector<int>& res) // N шаров, K корзин
{
if (N == 0)
{
for(auto n: res) cout << n << " ";
for(int i = 0; i < K; ++i)
{
cout << 0;
if (i != K-1) cout << " ";
}
cout << endl;
}
else if (K == 0)
{
return;
} else {
for(int i = 0; i <= N; ++i)
{
res.push_back(i);
Generate(N-i,K-1,res);
res.pop_back();
}
}
}
int main(int argc, const char * argv[])
{
vector<int> r;
Generate(10,3,r);
}
I2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIEdlbmVyYXRlKGludCBOLCBpbnQgSywgdmVjdG9yPGludD4mIHJlcykgLy8gTiDRiNCw0YDQvtCyLCBLINC60L7RgNC30LjQvQp7CiAgICBpZiAoTiA9PSAwKQogICAgewogICAgICAgIGZvcihhdXRvIG46IHJlcykgY291dCA8PCBuIDw8ICIgIjsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgSzsgKytpKQogICAgICAgIHsKICAgICAgICAgICAgY291dCA8PCAwOwogICAgICAgICAgICBpZiAoaSAhPSBLLTEpIGNvdXQgPDwgIiAiOwogICAgICAgIH0KICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICB9CiAgICBlbHNlIGlmIChLID09IDApCiAgICB7CiAgICAgICAgcmV0dXJuOwogICAgfSBlbHNlIHsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDw9IE47ICsraSkKICAgICAgICB7CiAgICAgICAgICAgIHJlcy5wdXNoX2JhY2soaSk7CiAgICAgICAgICAgIEdlbmVyYXRlKE4taSxLLTEscmVzKTsKICAgICAgICAgICAgcmVzLnBvcF9iYWNrKCk7CiAgICAgICAgfQogICAgfQp9CgoKCmludCBtYWluKGludCBhcmdjLCBjb25zdCBjaGFyICogYXJndltdKQp7CiAgICB2ZWN0b3I8aW50PiByOwogICAgR2VuZXJhdGUoMTAsMyxyKTsKfQo=