#include <iostream>
#include <stdio.h>
#include <algorithm>
#include <vector>

using namespace std;
char symbol[3] = {'+', '-', '*'};

int calc(int x, int y, char c)
{
	switch(c)
	{
		case '+':
			return(x + y);
		case '-':
			return(x - y);
		case '*':
			return(x * y);
	}
}

void solve()
{
	vector<int> num(4);
	while(cin >> num[0] >> num[1] >> num[2] >> num[3], num[0] || num[1] || num[2] || num[3])
	{
		bool flag = false;
		sort(num.begin(), num.end());
		do
		{
			for(int i = 0; i < 3; ++i)
			{
				for(int j = 0; j < 3; ++j)
				{
					for(int k = 0; k < 3; ++k)
					{
						int result = calc(num[0], num[1], symbol[i]);
						result = calc(result, num[2], symbol[j]);
						result = calc(result, num[3], symbol[k]);
						if(result == 10)
						{
							printf("((%d %c %d) %c %d) %c %d\n", num[0], symbol[i], num[1], symbol[j], num[2], symbol[k], num[3]);
							flag = true;
							goto END;
						}
						
						result = calc(num[1], num[2], symbol[j]);
						result = calc(num[0], result, symbol[i]);
						result = calc(result, num[3], symbol[k]);
						if(result == 10)
						{
							printf("(%d %c (%d %c %d)) %c %d\n", num[0], symbol[i], num[1], symbol[j], num[2], symbol[k], num[3]);
							flag = true;
							goto END;
						}
						
						result = calc(num[2], num[3], symbol[k]);
						result = calc(num[1], result, symbol[j]);
						result = calc(num[0], result, symbol[i]);
						if(result == 10)
						{
							printf("%d %c (%d %c (%d %c %d))\n", num[0], symbol[i], num[1], symbol[j], num[2], symbol[k], num[3]);
							flag = true;
							goto END;
						}
						
						result = calc(num[0], num[1], symbol[i]);
						int result2 = calc(num[2], num[3], symbol[k]);
						result = calc(result, result2, symbol[j]);
						if(result == 10)
						{
							printf("(%d %c %d) %c (%d %c %d)\n", num[0], symbol[i], num[1], symbol[j], num[2], symbol[k], num[3]);
							flag = true;
							goto END;
						}

						result = calc(num[1], num[2], symbol[j]);
						result = calc(result, num[3], symbol[k]);
						result = calc(num[0], result, symbol[i]);
						if(result == 10)
						{
							printf("%d %c ((%d %c %d) %c %d)\n", num[0], symbol[i], num[1], symbol[j], num[2], symbol[k], num[3]);
							flag = true;
							goto END;
						}
					}
				}
			}
		}while(next_permutation(num.begin(), num.end()));
END:;
		if(!flag)
		{
			cout << "0" << endl;
		}
	}
}

int main()
{
	solve();
	return(0);
}