#include<iostream>
#include<string>
#include<algorithm>
#include<map>
#include<set>
#include<utility>
#include<vector>
#include<cmath>
#include<cstdio>
#define loop(i,a,b) for(int i=a;i<b;i++) 
#define rep(i,a) loop(i,0,a)
#define pb push_back
#define mp make_pair
#define it ::iterator
#define all(in) in.begin(),in.end()
const double PI=acos(-1);
const double ESP=1e-10;
using namespace std;
int kakko(int a,int b,int d){
  if(d==0)return a+b;
  else if(d==1)return a-b;
  else return a*b;
}
int main(){
  vector<int>in(4);
  map<int,char>out;
  out[0]='+';
  out[1]='-';
  out[2]='*';
  while(cin>>in[0]>>in[1]>>in[2]>>in[3],in[0]|in[1]|in[2]|in[3]){
    sort(all(in));
    bool h=false;
    do{
      rep(i,3)rep(j,3)rep(k,3){
	if(kakko(kakko(kakko(in[0],in[1],i),in[2],j),in[3],k)==10){
	  printf("(((%d %c %d) %c %d) %c %d)\n",in[0],out[i],in[1],out[j],in[2],out[k],in[3]);
	  h=true;
	  i=j=k=3;
	}else if(kakko(kakko(in[0],kakko(in[1],in[2],j),i),in[3],k)==10){
	  printf("((%d %c (%d %c %d)) %c %d)\n",in[0],out[i],in[1],out[j],in[2],out[k],in[3]);
	  h=true;
	  i=j=k=3;
	}else if(kakko(in[0],kakko(kakko(in[1],in[2],j),in[3],k),i)==10){
	  printf("(%d %c ((%d %c %d) %c %d))\n",in[0],out[i],in[1],out[j],in[2],out[k],in[3]);
	  h=true;
	  i=j=k=3;
	}else if(kakko(in[0],kakko(in[1],kakko(in[2],in[3],k),j),i)==10){
	  printf("(%d %c (%d %c (%d %c %d)))\n",in[0],out[i],in[1],out[j],in[2],out[k],in[3]);
	  h=true;
	  i=j=k=3;
	}else if(kakko(kakko(in[0],in[1],i),kakko(in[2],in[3],k),j)==10){
	  printf("((%d %c %d) %c (%d %c %d))\n",in[0],out[i],in[1],out[j],in[2],out[k],in[3]);
	  h=true;
	  i=j=k=3;
	}
      }
      if(h)break;
    }while(next_permutation(all(in)));
    if(!h)cout<<'0'<<endl;
  }
}