#include <cstdio>
#include <cstdlib>
#include <cmath>
#include <climits>
#include <cfloat>
#include <map>
#include <utility>
#include <set>
#include <iostream>
#include <memory>
#include <string>
#include <vector>
#include <algorithm>
#include <functional>
#include <sstream>
#include <complex>
#include <stack>
#include <queue>
#include <cstring>
#include <sstream>
#include <cassert>
using namespace std;
static const double EPS = 1e-5;
typedef long long ll;
typedef pair<int,int> PI;
#define rep(i,n) for(int i=0;i<(int)n;++i)
#define FOR(i,c) for(__typeof((c).begin())i=(c).begin();i!=(c).end();++i)
#define ALL(c) (c).begin(), (c).end()
#define MP make_pair
#define PB push_back


/*´z
ZqÌÔðl¶¹¸ÉR[hüÍðßñÇ­³ªÁÄcalÖàÌøÌÔÏ¦ÄWA

*/

int cal(int l,int r,char cop){
  switch(cop){
  case '+':return l+r;
  case '-':return l-r;
  case '*':return l*r;
  }
}



main(){
  int a,b,c,d;
  vector<char> op;
  rep(i,9){
    if(i<3)op.PB('+');
    else if(i<6)op.PB('-');
    else if(i<9)op.PB('*');
  }
  while(cin>>a>>b>>c>>d,a|b|c|d){
    vector<int> num;
    num.PB(a),num.PB(b),num.PB(c),num.PB(d);

    sort(num.begin(),num.end());
    sort(op.begin(),op.end());

    do{
      do{
        a=cal(num[0],num[1],op[0]);
        b=cal(num[2],num[3],op[2]);
        a=cal(a,b,op[1]);
        if(a==10){
          printf("((%d %c %d) %c (%d %c %d))\n",num[0],op[0],num[1],op[1],num[2],op[2],num[3]);
          goto END;
        }

        a=cal(num[0],num[1],op[0]);
        a=cal(a,num[2],op[1]);
        a=cal(a,num[3],op[2]);
        if(a==10){
          printf("(((%d %c %d) %c %d) %c %d)\n",num[0],op[0],num[1],op[1],num[2],op[2],num[3]);
          goto END;
        }

        a=cal(num[1],num[2],op[1]);
        a=cal(num[0],a,op[0]);
        a=cal(a,num[3],op[2]);
        if(a==10){
          printf("((%d %c (%d %c %d)) %c %d)\n",num[0],op[0],num[1],op[1],num[2],op[2],num[3]);
          goto END;
        }

        a=cal(num[1],num[2],op[1]);
        a=cal(a,num[3],op[2]);
        a=cal(num[0],a,op[0]);
        if(a==10){
          printf("(%d %c ((%d %c %d) %c %d))\n",num[0],op[0],num[1],op[1],num[2],op[2],num[3]);
          goto END;
        }
        
        a=cal(num[2],num[3],op[2]);
        a=cal(num[1],a,op[1]);
        a=cal(num[0],a,op[0]);
        if(a==10){
          printf("(%d %c (%d %c (%d %c %d)))\n",num[0],op[0],num[1],op[1],num[2],op[2],num[3]);
          goto END;
        }
        
      }while(next_permutation(op.begin(),op.end()));
    }while(next_permutation(num.begin(),num.end()));
    puts("0");
    END:;
  }
}