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

int a[4];
char op[] = {'+','-','*'};
int f(int n, int m, int ch)
{
	switch(ch){
	  case 0:
		return n + m;
	  case 1:
		return n - m;
	  case 2:
		return n * m;
	}
	return 0;
}

void solve()
{
	int count = 0;
	do{
		for(int i = 0; i < 27; ++i){
			int l = i/9, c = i/3%3, r = i%3;
			if(f(f(f(a[0],a[1],l),a[2],c),a[3],r) == 10){
				printf("(((%d %c %d) %c %d) %c %d)\n",a[0],op[l],a[1],op[c],a[2],op[r],a[3]);
				return;
			}
			else if(f(a[0],f(a[1],f(a[2],a[3],r),c),l) == 10){
				printf("(%d %c (%d %c (%d %c %d)))\n",a[0],op[l],a[1],op[c],a[2],op[r],a[3]);
				return;
			}
			else if(f(f(a[0],a[1],l),f(a[2],a[3],r),c) == 10){
				printf("((%d %c %d) %c (%d %c %d))\n",a[0],op[l],a[1],op[c],a[2],op[r],a[3]);
				return;
			}
			else if(f(f(a[0],f(a[1],a[2],c),l),a[3],r) == 10){
				printf("((%d %c (%d %c %d)) %c %d)\n",a[0],op[l],a[1],op[c],a[2],op[r],a[3]);
				return;
			}
			else if(f(a[0],f(f(a[1],a[2],c),a[3],r),l) == 10){
				printf("(%d %c ((%d %c %d) %c %d))\n",a[0],op[l],a[1],op[c],a[2],op[r],a[3]);
				return;
			}
		}
	}while(next_permutation(a,a+4));
	cout << 0 << endl;
}

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