#include <iostream>
#include <string>
using namespace std;

int input[4];
int pos;
string str;
string data;

string exp2(int input[4]);
int exp();
int term();
int factor();
int henkan(string);
int ruijou(int);


int main(){
  while(1){
    for(int i=0;i<4;i++){
      cin >> input[i];
    }
    if(input[0]==0 && input[1]==0 && input[2]==0 && input[3]==0) return 0;
    
    string ans;

    ans=exp2(input);

    cout << ans << endl;
  }
  return 0;
}

int exp(){
  int x=term();
  
  while(str[pos]=='+' || str[pos]=='-'){
    char op=str[pos];
    pos++;
    if(op=='+'){
      x+=term();
    }
    else{
      x-=term();
    }
  }
  return x;
}

string exp2(int input[4]){
  char mozi[3]={'+','-','*'};
  int ans;

  for(int a=0;a<4;a++){
    for(int b=0;b<4;b++){
      if(b==a) continue;
      for(int c=0;c<4;c++){
	if(c==a || c==b) continue;
	for(int d=0;d<4;d++){
	  if(d==a || d==b || d==c) continue;
	  for(int i=0;i<3;i++){
	    for(int j=0;j<3;j++){
	      for(int k=0;k<3;k++){
		data="";
		data+=input[a]+'0';
		data+=mozi[i];
		data+=input[b]+'0';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=mozi[k];
		data+=input[d]+'0';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

		data="";
		data+='(';
		data+=input[a]+'0';
		data+=mozi[i];
		data+=input[b]+'0';
		data+=')';
		data+=mozi[j];
		data+='(';
		data+=input[c]+'0';
		data+=mozi[k];
		data+=input[d]+'0';
		data+=')';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

		
		data="";
		data+='(';
		data+=input[a]+'0';
		data+=mozi[i];
		data+=input[b]+'0';
		data+=')';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=mozi[k];
		data+=input[d]+'0';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

		
		data="";
		data+=input[a]+'0';
		data+=mozi[i];
		data+='(';
		data+=input[b]+'0';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=')';
		data+=mozi[k];
		data+=input[d]+'0';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

		data="";
		data+=input[a]+'0';
		data+=mozi[i];
		data+=input[b]+'0';
		data+=mozi[j];
		data+='(';
		data+=input[c]+'0';
		data+=mozi[k];
		data+=input[d]+'0';
		data+=')';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;


		data="";
		data+='(';
		data+=input[a]+'0';
		data+=mozi[i];
		data+=input[b]+'0';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=')';
		data+=mozi[k];
		data+=input[d]+'0';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;


		data="";
		data+=input[a]+'0';
		data+=mozi[i];
		data+='(';
		data+=input[b]+'0';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=mozi[k];
		data+=input[d]+'0';
		data+=')';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

		data="";
		data+="((";
		data+=input[a]+'0';
		data+=mozi[i];
		data+=input[b]+'0';
		data+=')';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=')';
		data+=mozi[k];
		data+=input[d]+'0';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;


		data="";
		data+='(';
		data+=input[a]+'0';
		data+=mozi[i];
		data+='(';
		data+=input[b]+'0';
		data+=mozi[j];
		data+=input[c]+'0';
		data+="))";
		data+=mozi[k];
		data+=input[d]+'0';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;


		data="";
		data+=input[a]+'0';
		data+=mozi[i];
		data+="((";
		data+=input[b]+'0';
		data+=mozi[j];
		data+=input[c]+'0';
		data+=')';
		data+=mozi[k];
		data+=input[d]+'0';
		data+=')';
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

		data="";
		data+=input[a]+'0';
		data+=mozi[i];
		data+='(';
		data+=input[b]+'0';
		data+=mozi[j];
		data+='(';
		data+=input[c]+'0';
		data+=mozi[k];
		data+=input[d]+'0';
		data+="))";
		str=data;
		pos=0;
		ans=exp();
		if(ans==10) return str;

	      }
	    }
	  }
	}
      }
    }
  }
  return "0";
}
int term(){
  int x=factor();
  while(str[pos]=='*' || str[pos]=='/'){
    char op=str[pos];
    pos++;
    if(op=='*') x*=factor();
    else x/=factor();
  }
  return x;
}

int factor(){
  int x;

  if(str[pos]=='('){
    pos++;
    x=exp();
    pos++;
  }
  else{
    string number="";
    int i=pos;
    while(str[i]>='0' && str[i]<='9'){
      number+=str[i];
      i++;
    }
    pos=i;
    x=henkan(number);
  }
  
  return x;
}

int henkan(string number){
  int size=number.size();
  int sum=0;
  
  for(int i=0;i<size;i++){
    sum+=(number[i]-'0')*ruijou(size-i-1);
  }
  return sum;
}

int ruijou(int n){
  int sum=1;
  
  for(int i=0;i<n;i++){
    sum*=10;
  }
  
  return sum;
}

Measured memory_bytes: 920