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

int a[4];
int c(int f, int o, int b){
    if(o==0) return f+b;
    else if(o==1) return f-b;
    else return f*b;
}

char conv(int o){
    if(o==0) return '+';
    else if(o==1) return '-';
    else return '*';
}

int make(int w, int x, int y, int z){
    int p=0;
    int i, j, k;
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                if(c(c(w, i, x), k, c(y, j, z)) == 10){
                    p=1;
                    break;
                }else if(c(c(c(w, i, x), j, y), k, z) == 10){ 
                    p=2;
                    break;
                }
            }
            if(p) break;
        }
        if(p) break;
    }
    if(p){
        if(p==1){
            cout << "((" << w << ' ' << conv(i) << ' ' << x << ')';
            cout << ' ' << conv(k) << ' ';
            cout << '(' << y << ' ' << conv(j) << ' ' << z << "))";
            cout << endl;
            return 0;
        }
        else if(p==2){
            cout << "(((" << w << ' ' << conv(i) << ' ' << x << ')';
            cout << ' ' << conv(j) << ' ' << y << ')';
            cout << ' ' << conv(k) << ' ' << z << ')';
            cout << endl;
            return 0;
        }
    }
    return 1;
}

int solve(){
    for(int w=0;w<4;w++){
        for(int x=0;x<4;x++){
            if(x==w) continue;
            for(int y=0;y<4;y++){
                if(y==w || y==x) continue;
                for(int z=0;z<4;z++){
                    if(z==w || z==x || z==y) continue;
                    if(!make(a[w], a[x], a[y], a[z])) return 0;
                }
            }
        }
    }
    cout << 0 << endl;
}

int main(){
    cin >> a[0] >> a[1] >> a[2] >> a[3];
    while(a[0]||a[1]||a[2]||a[3]){
        solve();
        cin >> a[0] >> a[1] >> a[2] >> a[3];
    }
}