#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;
}