#include <bits/stdc++.h>
using namespace std;
void find(int n, int cursum, vector<int> &v, int &ans){
if(cursum == n){
int tt = 1;
for(auto i : v){
// cout << i << " ";
tt *= i;
}
// cout << "\n";
ans += tt;
return;
}
for(int i = 1; i < n; ++i){
if(cursum + i <= n){
v.push_back(i);
find(n, cursum + i, v, ans);
v.pop_back();
}
}
}
int main() {
int n = 15;
for(int i = 1; i <= n; ++i){
vector<int> v; int ans = 0;
find(i, 0, v, ans);
cout << ans << " ";
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIGZpbmQoaW50IG4sIGludCBjdXJzdW0sIHZlY3RvcjxpbnQ+ICZ2LCBpbnQgJmFucyl7CglpZihjdXJzdW0gPT0gbil7CgkJaW50IHR0ID0gMTsKCQlmb3IoYXV0byBpIDogdil7CgkJCS8vIGNvdXQgPDwgaSA8PCAiICI7CgkJCXR0ICo9IGk7CgkJfQoJCS8vIGNvdXQgPDwgIlxuIjsKCQlhbnMgKz0gdHQ7CgkJcmV0dXJuOwoJfQoJZm9yKGludCBpID0gMTsgaSA8IG47ICsraSl7CgkJaWYoY3Vyc3VtICsgaSA8PSBuKXsKCQkJdi5wdXNoX2JhY2soaSk7CgkJCWZpbmQobiwgY3Vyc3VtICsgaSwgdiwgYW5zKTsKCQkJdi5wb3BfYmFjaygpOwoJCX0KCX0KfQoKaW50IG1haW4oKSB7CgkKCWludCBuID0gMTU7Cglmb3IoaW50IGkgPSAxOyBpIDw9IG47ICsraSl7CgkJdmVjdG9yPGludD4gdjsgaW50IGFucyA9IDA7CgkJZmluZChpLCAwLCB2LCBhbnMpOwoJCWNvdXQgPDwgYW5zIDw8ICIgIjsKCX0KfQ==