#include <iostream>
#include <vector>
using namespace std;
vector<vector<int>> out;
void f(int N,int L,const vector<int>&prefix){
auto arr=prefix;
for(auto i=arr.empty()?0:arr.back()+1;i<N;i++){
arr.push_back(i);
if(L==arr.size())out.push_back(arr);
f(N,L,arr);
arr.pop_back();
}
}
int sum(const vector<int>&arr,const vector<int>&ids){int v=0;for(size_t i=0;i<ids.size();i++)v+=arr[ids[i]];return v;}
bool check(const vector<int>&inp){
vector<int> e;
int n=inp.size();
for(int i=0;i<n;i++)f(n,i+1,e);
for(int i=0;i<out.size();i++){
auto&arr=out[i];
if(0==sum(inp,arr)){for(int i=0;i<arr.size();i++)cout<<inp[arr[i]]<<" ";cout<<endl;return true;}
}
return false;
}
int main() {
int inp_arr[]={2,-7,4,8,1}; int n=5;
vector<int> inp(inp_arr,inp_arr+n);
cout<<(check(inp)?"true":"false");
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKdmVjdG9yPHZlY3RvcjxpbnQ+PiBvdXQ7CnZvaWQgZihpbnQgTixpbnQgTCxjb25zdCB2ZWN0b3I8aW50PiZwcmVmaXgpewogIGF1dG8gYXJyPXByZWZpeDsKICBmb3IoYXV0byBpPWFyci5lbXB0eSgpPzA6YXJyLmJhY2soKSsxO2k8TjtpKyspewogICAgYXJyLnB1c2hfYmFjayhpKTsKICAgIGlmKEw9PWFyci5zaXplKCkpb3V0LnB1c2hfYmFjayhhcnIpOwogICAgZihOLEwsYXJyKTsKICAgIGFyci5wb3BfYmFjaygpOwogIH0KfQoKaW50IHN1bShjb25zdCB2ZWN0b3I8aW50PiZhcnIsY29uc3QgdmVjdG9yPGludD4maWRzKXtpbnQgdj0wO2ZvcihzaXplX3QgaT0wO2k8aWRzLnNpemUoKTtpKyspdis9YXJyW2lkc1tpXV07cmV0dXJuIHY7fQoKYm9vbCBjaGVjayhjb25zdCB2ZWN0b3I8aW50PiZpbnApewogIHZlY3RvcjxpbnQ+IGU7CiAgaW50IG49aW5wLnNpemUoKTsKICBmb3IoaW50IGk9MDtpPG47aSsrKWYobixpKzEsZSk7CiAgZm9yKGludCBpPTA7aTxvdXQuc2l6ZSgpO2krKyl7CiAgICBhdXRvJmFycj1vdXRbaV07CiAgICBpZigwPT1zdW0oaW5wLGFycikpe2ZvcihpbnQgaT0wO2k8YXJyLnNpemUoKTtpKyspY291dDw8aW5wW2FycltpXV08PCIgIjtjb3V0PDxlbmRsO3JldHVybiB0cnVlO30KICB9CiAgcmV0dXJuIGZhbHNlOwp9CgppbnQgbWFpbigpIHsKICBpbnQgaW5wX2FycltdPXsyLC03LDQsOCwxfTsgaW50IG49NTsKICB2ZWN0b3I8aW50PiBpbnAoaW5wX2FycixpbnBfYXJyK24pOwogIGNvdXQ8PChjaGVjayhpbnApPyJ0cnVlIjoiZmFsc2UiKTsKICByZXR1cm4gMDsKfQ==