#include <bits/stdc++.h>  

using namespace std;

#define FOR(i, j, k) for(int i = j; i < k; ++i)
#define rep(i, j) FOR(i, 0, j)
#define repr(i, j) for(int i = j; i >= 0; --i)
#define INF (1 << 30)
#define MOD 1e9 + 7

typedef long long ll;
typedef unsigned long long ull;
typedef pair<int, int> P;

bool flag = false;
string s = "+-*";
int n[4];

int calc(int a, int o, int b) {
	if(o == 0) return a + b;
	else if(o == 1) return a - b;
	return a * b;
}

bool solve(int a, int b, int c){
	flag++;
	if(calc( calc( calc(n[0], a, n[1]), b, n[2]), c, n[3]) == 10){
		return printf("(((%d %c %d) %c %d) %c %d)\n", n[0], s[a], n[1], s[b], n[2], s[c], n[3]);
	}
	if(calc( calc(n[0], a, n[1]), b, calc(n[2], c, n[3])) == 10){
		return printf("((%d %c %d) %c (%d %c %d))\n", n[0], s[a], n[1], s[b], n[2], s[c], n[3]);
	}
	if(calc( calc(n[0], a, calc(n[1], b, n[2])), c, n[3]) == 10){
		return printf("((%d %c (%d %c %d)) %c %d)\n", n[0], s[a], n[1], s[b], n[2], s[c], n[3]);
	}
	return flag = false;
}

bool judge(){
	rep(i,3) rep(j,3) rep(k,3) if(solve(i, j, k)) return true;
}

int main() {
	while(1) {
		rep(i, 4) cin >> n[i];
    	if(!n[0] && !n[1] && !n[2] && !n[3]) break;
    	sort(n, n + 4);
    	do {
    		if(judge()) break; 
    	}while(next_permutation(n, n + 4));
   		if(!flag) puts("0");
	}
	return 0;
}