#include <iostream>
#include <vector>
#include <string>
#include <cstring>
#include <algorithm>
#include <queue>
#include <set>

using namespace std;

int num[4];
string ope[] = {" + ", " - ", " * "};

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

void solve(){
	
	sort(num, num+4);
	
	do{
		
		for(int o1=0; o1<3; ++o1){
			for(int o2=0; o2<3; ++o2){
				for(int o3=0; o3<3; ++o3){
					for(int par=0; par<5; ++par){
						
						if(par==0 && op(o1, num[0], op(o2, num[1], op(o3, num[2], num[3]))) == 10){
							cout << num[0] << ope[o1] << "(" << num[1] << ope[o2] << "(" << num[2] << ope[o3] << num[3] << "))" << endl;
							return;
						}
						if(par==1 && op(o1, op(o2, num[0], num[1]), op(o3, num[2], num[3])) == 10){
							cout << "((" << num[0] << ope[o2] << num[1] << ")" << ope[o1] << "(" << num[2] << ope[o3] << num[3] << "))" << endl;
							return;
						}
						if(par==2 && op(o1, num[0], op(o2, op(o3, num[1], num[2]), num[3])) == 10){
							cout << num[0] << ope[o1] << "((" << num[1] << ope[o2] << num[2] <<")"<< ope[o3] << num[3] << ")" <<endl;
							return;
						}
						if(par==3 && op(o1, op(o2, num[0], op(o3, num[1], num[2])), num[3]) == 10){
							cout << "(" <<num[0] << ope[o1] << "(" << num[1] << ope[o2] << num[2] <<")"<< ope[o3] << ")" <<num[3] <<endl;
							return;
						}
						if(par==4 && op(o1, op(o2, op(o3, num[0], num[1]), num[2]), num[3]) == 10){
							cout << "((" <<num[0] << ope[o1] << num[1] << ")" << ope[o2] << num[2] << ")" << ope[o3] << num[3] << endl;
							return;
						}
					}
				}
			}
		}
		
	}while(next_permutation(num, num+4));
	
	cout << 0 << endl;
	return;
}

int main(){
	
	while(cin>>num[0], num[0]){
		
		for(int i=1; i<4; ++i){
			cin>>num[i];
		}
		
		solve();
	}
	
}