#include<bits/stdc++.h>
using namespace std;
bool print(vector<int>&in,vector<int>&out,int l,int local,int k)
{
if(local==k)
{
for(auto x:out)
cout<<x<<" ";
cout<<endl;
return false;
}
for(int i=l;i<in.size();i++)
{
if (local + in[i] > k)
continue;
out.push_back(in[i]);
bool aage=print(in,out,i+1,local+in[i],k);
if(aage)
{
return true;
}
out.pop_back();
}
return false;
}
int main()
{
vector<int>v={10, 1, 2, 7, 6, 1, 5};
sort(v.begin(),v.end());
vector<int> out;
print(v,out,0,0,8);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKIApib29sIHByaW50KHZlY3RvcjxpbnQ+JmluLHZlY3RvcjxpbnQ+Jm91dCxpbnQgbCxpbnQgbG9jYWwsaW50IGspCnsKCWlmKGxvY2FsPT1rKQoJewoJCWZvcihhdXRvIHg6b3V0KQoJCWNvdXQ8PHg8PCIgIjsKCQljb3V0PDxlbmRsOwoJCXJldHVybiBmYWxzZTsKCX0KCWZvcihpbnQgaT1sO2k8aW4uc2l6ZSgpO2krKykKCXsKCQlpZiAobG9jYWwgKyBpbltpXSA+IGspIAogICAgICAgICAgICBjb250aW51ZTsKCSAgCgkJb3V0LnB1c2hfYmFjayhpbltpXSk7CgkJYm9vbCBhYWdlPXByaW50KGluLG91dCxpKzEsbG9jYWwraW5baV0sayk7CgkJaWYoYWFnZSkKCQl7CgkJCXJldHVybiB0cnVlOwoJCSB9IAoJCQlvdXQucG9wX2JhY2soKTsJCgl9CglyZXR1cm4gZmFsc2U7Cn0KaW50IG1haW4oKQp7Cgl2ZWN0b3I8aW50PnY9ezEwLCAxLCAyLCA3LCA2LCAxLCA1fTsKCXNvcnQodi5iZWdpbigpLHYuZW5kKCkpOwoJdmVjdG9yPGludD4gb3V0OwoJcHJpbnQodixvdXQsMCwwLDgpOwoJcmV0dXJuIDA7Cn0=