#include <iostream>
using namespace std;
int d[] = {1, 24, 2, 2, 8, 44, 3, 42, 4, 8, 9, 2, 2, 7, 9, 4, 3, 5, 2, 4, 9, 5, 3, 2, 3, 2, 1, 1}
, m = 209, *pd = d+1;
// int d[] = {1, 8, 4, 3, 2, 4, 8, 9, 2, 2, 7, 9, 4, 3, 5, 2, 4, 9, 5, 3, 2, 3, 2, 1, 1}
// , m = 99;
//int d[] = {1, 4, -2, 2}
// , m = 5;
const int n = sizeof(d)/sizeof(int);
char r[n], *pr = r;
void find(int i, int s)
{
if (i == (n-1)) {
if (s == m) {*(pr+i) = 0; cout<<" "<<pr<<" = "<<s<<endl;}
return;
}
*(pr+i) = '+'; find(i+1, s+*(pd+i));
*(pr+i) = '-'; find(i+1, s-*(pd+i));
}
int main()
{
for(int i=0; i<n; i++) cout<<d[i]; cout<<endl;
find(0, *d);
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKICAgIGludCBkW10gPSB7MSwgMjQsIDIsIDIsIDgsIDQ0LCAzLCA0MiwgNCwgOCwgOSwgMiwgMiwgNywgOSwgNCwgMywgNSwgMiwgNCwgOSwgNSwgMywgMiwgMywgMiwgMSwgMX0KICAgIAkJLCBtID0gMjA5LCAqcGQgPSBkKzE7Ci8vICAgIGludCBkW10gPSB7MSwgOCwgNCwgMywgMiwgNCwgOCwgOSwgMiwgMiwgNywgOSwgNCwgMywgNSwgMiwgNCwgOSwgNSwgMywgMiwgMywgMiwgMSwgMX0KLy8gICAgCQksIG0gPSA5OTsKICAgIC8vaW50IGRbXSA9IHsxLCA0LCAtMiwgMn0KICAgIC8vCQksIG0gPSA1OwogICAgY29uc3QgaW50IG4gPSBzaXplb2YoZCkvc2l6ZW9mKGludCk7CiAgICBjaGFyIHJbbl0sICpwciA9IHI7CiAKIAp2b2lkIGZpbmQoaW50IGksIGludCBzKQp7CiAgICBpZiAoaSA9PSAobi0xKSkgewogICAgICAgIGlmIChzID09IG0pIHsqKHByK2kpID0gMDsgY291dDw8IiAiPDxwcjw8IiA9ICI8PHM8PGVuZGw7fQogICAgICAgIHJldHVybjsKICAgIH0KICAgICoocHIraSkgPSAnKyc7IGZpbmQoaSsxLCBzKyoocGQraSkpOwogICAgKihwcitpKSA9ICctJzsgZmluZChpKzEsIHMtKihwZCtpKSk7Cn0KIAppbnQgbWFpbigpIAp7CiAgICBmb3IoaW50IGk9MDsgaTxuOyBpKyspIGNvdXQ8PGRbaV07IGNvdXQ8PGVuZGw7CiAgICBmaW5kKDAsICpkKTsKICAgIHJldHVybiAwOwp9