#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;

char o[3] = {'+','-','*'};
bool flag;

int calc(int a,int b,int op){
    if( op == 0 )
        return a + b;
    if( op == 1 )
        return a - b;
    return a * b;
}

void solve(vector<int> v, int op1, int op2, int op3){
    if( flag == false ) return ;
    int a = v[0];
    int b = v[1];
    int c = v[2];
    int d = v[3];
	
    if( calc( calc( calc(a,b,op1) , c , op2 ) , d , op3 ) == 10 ){
        cout << "(((" << a << " " << o[op1] << " " << b << ") " << o[op2] << " " << c << ") " << o[op3] << " " << d << ")" << endl;
        flag = false;
        return;
    }
    if( calc( calc(a,b,op1) , calc(c,d,op3) , op2 ) == 10 ){
        cout << "((" << a << " " << o[op1] << " " << b << ") " << o[op2] << " (" << c << " " << o[op3] << " " << d << "))" << endl;
        flag = false;
        return;
    }
    if( calc( calc( a , calc(b,c,op2) , op1 ) , d , op3 ) == 10 ){
        cout << "((" << a << " " << o[op1] << " (" << b << " " << o[op2] << " " << c << ") " << o[op3] << " " << d << "))" << endl;
        flag = false;
        return;
    }
}

int main(){
    int a,b,c,d;
	
    while( cin >> a >> b >> c >> d , a || b || c || d ){
        vector<int> v(4);
        flag = true;
        v[0] = a;
        v[1] = b;
        v[2] = c;
        v[3] = d;
		
        sort( v.begin() , v.end() );
        do{
            for(int i=0 ; i < 3 && flag ; i++ ){
                for(int j=0 ; j < 3 && flag ; j++ ){
                    for(int k=0 ; k < 3 && flag ; k++ ){
                        solve( v , i , j , k );
                    }
                }
             }
        }while( next_permutation(v.begin(),v.end()) && flag );
        if( flag ){
            cout << 0 << endl;
        }
    }
}