#include <iostream>
#include <algorithm>
#include <sstream>
#include <string>
using namespace std;
#define REP(i,n) for (int i=0; i<n; i++)
#define ADD(a,b,c) "("+ a +" "+ c +" "+ b +")"
 
string i2s(int n){
  stringstream ss;
  ss << n;
  return ss.str();
}
 
int op(int x, int y, int mode){
    switch (mode){
    case 0:
        return x+y;
    case 1:
        return x-y;
    case 2:
        return x*y;
    }
}
 
string check(int x[], int n){
    int x0=x[0], x1=x[1], x2=x[2], x3=x[3];
    string s0=i2s(x0), s1=i2s(x1), s2=i2s(x2), s3=i2s(x3);
    string ops="+-*", eq1, eq2;
    int n1 = ops.size();
    REP(i1, n1){
        int a1 = op(x0, x1, i1);
        eq1 = ADD(s0, s1, ops[i1]);
        REP(i2, n1){
            int a2 = op(a1, x2, i2);
            eq2 = ADD(eq1, s2, ops[i2]);
            REP(i3, n1)
                if (op(a2, x3, i3)==n) return ADD(eq2, s3, ops[i3]);
            a2 = op(x2, x3, i2);
            eq2 = ADD(s2, s3, ops[i2]);
            REP(i3,n1)
                if (op(a1, a2, i3)==n) return ADD(eq1,eq2,ops[i3]);
        }
    }
    return "";
}
 
int f0041(){
    int n=10, x[4];
    while (cin>>x[0]>>x[1]>>x[2]>>x[3]){
        if (x[0]==0 && x[1]==0 && x[2]==0 && x[3]==0) return 0;
 
        sort(x,x+4);
        bool f = true;
        do{
            string s = check(x, n);
            if (s != ""){
                cout<<s<<endl;
                f = false;
                break;
            }
        }while (next_permutation(x,x+4));
        if (f) cout<<"0"<<endl;
    }
}
 
int main(void){
    f0041();
}