#include <iostream>
using namespace std; 
 
void find(int *pd, int n, int m, int s, char *pr, char *pr0)
{
    if (n == 0) {
        if (s == m) {*pr = 0; cout<<" "<<pr0<<" = "<<s<<endl;}
        return;
    }
    *pr = '+'; find(pd+1, n-1, m, s+*pd, pr+1, pr0);
    *pr = '-'; find(pd+1, n-1, m, s-*pd, pr+1, pr0);
}
 
int main() 
{
    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;
//    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];
 
    for(int i=0; i<n; i++) cout<<d[i]; cout<<endl;
    find(d+1, n-1, m, d[0], r, r);
 
    return 0;
}