#include <iostream>
#include <set>
#include <vector>
using namespace std;
set<multiset<int>>f(vector<int>a){set<multiset<int>>r;for(int q=2e3,s;--q;){multiset<int>c;s=0;for(auto&x:a)if(q&1<<&x-&a[0])c.insert(x),s+=x;if(s==10)r.insert(c);}return r;}
int main()
{
for (auto &r : f({5,5,2,3}))
{
for (auto &x : r)
cout << x << ' ';
cout << '\n';
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8c2V0PgojaW5jbHVkZSA8dmVjdG9yPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCnNldDxtdWx0aXNldDxpbnQ+PmYodmVjdG9yPGludD5hKXtzZXQ8bXVsdGlzZXQ8aW50Pj5yO2ZvcihpbnQgcT0yZTMsczstLXE7KXttdWx0aXNldDxpbnQ+YztzPTA7Zm9yKGF1dG8meDphKWlmKHEmMTw8JngtJmFbMF0pYy5pbnNlcnQoeCkscys9eDtpZihzPT0xMClyLmluc2VydChjKTt9cmV0dXJuIHI7fQoKaW50IG1haW4oKQp7Cglmb3IgKGF1dG8gJnIgOiBmKHs1LDUsMiwzfSkpCgl7CgkJZm9yIChhdXRvICZ4IDogcikKCQkJY291dCA8PCB4IDw8ICcgJzsKCQkJCgkJY291dCA8PCAnXG4nOwoJfQoKCXJldHVybiAwOwp9