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