#include<iostream>
#include<vector>
#include<sstream>
#include<cstdlib>
#include<algorithm>
#define REP(i,s,n) for(int i=s;i<n;i++)
#define rep(i,n) REP(i,0,n)
#define inf (1<<28)

using namespace std;

class Parsing{
private:
  string parse;
  int pos;
public:
 
  Parsing(string s){
    parse = s;
    pos = 0;
  }

  int fact(){
    if(parse[pos] == '('){
      pos++;
      int p = expression();
      pos++;
      return p;
    }else{
      int p=0;
      
      while('0' <= parse[pos] && parse[pos] <= '9'){
	p *= 10;
	p += parse[pos]-'0';
	pos++;
      }
      return p;
    }
  }
 
  int term(){
    int p = fact();
    while(parse[pos] == '*' || parse[pos] == '/'){
      if(parse[pos] == '*'){pos++;p *= fact();}
      else {pos++;p /= fact();}
    }
    return p;
  }
 
  int expression(){
    int p = term();
    while(parse[pos] == '+' || parse[pos] == '-'){
      if(parse[pos] == '+'){pos++;p+=term();}
      else {pos++;p-=term();}
    }
    return p;
  } 
 
};

string itos(int i){ stringstream ss; ss << i; return ss.str(); }

char op[] = {'+','-','*'};
int a,b,c,d;
string num[4];
bool ok;

void dfs(vector<string> exp,int cnt)
{
  int expsize = exp.size();
  if(ok)return;
  if(cnt >= 3 || exp.size() <= 1)
    {
      string line;
      rep(i,expsize)line += exp[i];
      Parsing parsing(line);
      if(parsing.expression() == 10)
	{
	  ok = true;
	  cout << line << endl;
	}
      return;
    }

  for(int i=0;i<expsize;i+=2)//start
    {
      for(int j=i+2;j<expsize;j+=2)//end
	{
	  vector<string> new_exp;
	  rep(k,i)new_exp.push_back(exp[k]);
	  string new_num = "(";
	  REP(k,i,j+1)new_num += exp[k];
	  new_num += ")";
	  new_exp.push_back(new_num);
	  REP(k,j+1,expsize)new_exp.push_back(exp[k]);
	  dfs(new_exp,cnt+1);
	  if(ok)return;
	}
    }

}

void compute()
{
  sort(num,num+4);
  ok = false;
  do
    {
      rep(i,3)
	{//<op>
	  rep(j,3)
	    {//<op>
	      rep(k,3)
		{//<op>
		  vector<string> exp(7); 
		  exp[0] = num[0], exp[1] = string(1,op[i]);
		  exp[2] = num[1], exp[3] = string(1,op[j]);
		  exp[4] = num[2], exp[5] = string(1,op[k]);  
		  exp[6] = num[3];
		  dfs(exp,0);
		  if(ok)return;
		}
	    }
	}
    }
  while(next_permutation(num,num+4));
  
}

int main()
{

  while(cin >> a >> b >> c >> d,a|b|c|d)
    {  
      num[0] = itos(a), num[1] = itos(b), num[2] = itos(c), num[3] = itos(d);
      compute();  
      if(!ok)cout << 0 << endl;
    }
  return 0;
}