#include <iostream>
#include <cstdio>
#include <vector>
using namespace std;
#define rep2(x,from,to) for(int x = (from); x < (to); ++(x))
#define rep(x,to) rep2(x,0,to)
char c[3] =	{'+', '-', '*'};
void calc(vector<int> v1, vector<int> v2, int a[4], int r, bool &f) {
	if(f) return;
	if(r == 2) {
		vector<int> nv;
		nv.push_back(a[2] + a[3]);
		nv.push_back(a[2] - a[3]);
		nv.push_back(a[2] * a[3]);
		for(int x : v1) {
			for(int y : nv) {
				v2.push_back(x + y);
				v2.push_back(x - y);
				v2.push_back(x * y);
			}
		}
	}
	if(r == 4) {
		for(int i = 0; i < v1.size(); i++) {
			if(v1[i] == 10) {
				int x = i % 3;
				int y = (i / 3) % 3;
				int z = i / 9;
				if(x == 2) {
					cout << "((" << a[0] << " " << c[z] << " " << a[1] << ")" << c[y] << " " << a[2]
					<< ")" << c[x] << " " << a[3] << endl;
				} else if(y == 2) {
					cout << "(" << a[0] << " " << c[z] << " " << a[1] << ")" << c[y] << " " << a[2] << " "
					<< c[x] << " " << a[3] << endl;
				} else {
					cout << a[0] << " " << c[z] << " " << a[1] << " " << c[y] << " " << a[2] << " "
					<< c[x] << " " << a[3] << endl;
				}
				f = 1;
				return;
			}
		}
		for(int i = 0; i < v2.size(); i++) {
			if(v2[i] == 10) {
				int x = i % 3;
				int y = (i / 3) % 3;
				int z = i / 9;
				cout << "(" << a[0] << " " << c[z] << " " << a[1] << ")" << c[x] << "(" << a[2] << " "
					<< c[y] << " " << a[3] << ")" <<  endl;
				f = 1;
				return;
			}
		}
		return;
	}
	vector<int> nv;
	for(int x : v1) {
		nv.push_back(x + a[r]);
		nv.push_back(x - a[r]);
		nv.push_back(x * a[r]);
	}
	calc(nv, v2, a, r + 1, f);
}

int main() {
	int n[4];
	while(cin >> n[0] >> n[1] >> n[2] >> n[3] && (n[0] || n[1] || n[2] || n[3])) {
		bool b[4];	
		rep(i,4) {
			b[i] = 0;
		}
		bool f = 0;
		rep(i,4) {
			b[i] = 1; 
			rep(j,4) {
				if(b[j]) continue;
				b[j] = 1;
				rep(k,4) {
					if(b[k]) continue;
					b[k] = 1;
					int m = 0;
					while(b[m]) m++;					
					vector<int> v1;
					vector<int> v2;
					v1.push_back(n[i]);
					int a[4] = {n[i], n[j], n[k], n[m]};
					calc(v1, v2, a, 1, f);
					if(f) break;
					b[k] = 0;
				}
				if(f) break;
				b[j] = 0;	
			}
			if(f) break;
			b[i] = 0;
		}
		if(!f) cout << 0 <<endl;
	}
	return 0;
}