#include <string>
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
#include <set>
#include <utility>
#include <algorithm>
#include <numeric>
#include <iostream>

using namespace std;
template<class T> T gcd(T a, T b) { return b ? gcd(b, a % b) : a; }

int calc(int l,int r,int ope)
{
	if(ope == 0) return l+r;
	else if(ope == 1) return l-r;
	else return l*r;
}

char o[] = "+-*";
int i,j,k;

const char * solve(int a[4]){
	sort(a,a+4);

	do{
		for (i = 0; i < 3; i++){
			for (j = 0; j < 3; j++){
				for (k = 0; k < 3; k++){
					if(calc(calc(calc(a[0],a[1],i),a[2],j),a[3],k) == 10)
						return "(((%d %c %d) %c %d) %c %d)\n";
					else if(calc(calc(a[0],a[1],i),calc(a[2],a[3],k),j) == 10)
						return "((%d %c %d) %c (%d %c %d))\n";
					else if(calc(calc(a[0],calc(a[1],a[2],j),i),a[3],k) == 10)
						return "((%d %c (%d %c %d)) %c %d)\n";
					else if(calc(a[0],calc(calc(a[1],a[2],j),a[3],k),i) == 10)
						return "(%d %c ((%d %c %d) %c %d))\n";
					else if(calc(a[0],calc(a[1],calc(a[2],a[3],k),j),i) == 10)
						return "(%d %c (%d %c (%d %c %d)))\n";
				}
			}
		}
	}while(next_permutation(a,a+4));

	return "0\n";
}

int main()
{
	int a[4];
	while(cin>>a[0]>>a[1]>>a[2]>>a[3],a[0]||a[1]||a[2]||a[3]){
		const char *format = solve(a);
		printf(format,a[0],o[i],a[1],o[j],a[2],o[k],a[3]);
	}
	return 0;
}