#include<iostream>
#include<sstream>
int main()
{
	auto calc = [](int arg1, char op, int arg2)
	{
		switch (op)
		{
		case '+':
			return arg1 + arg2;
			break;
		case '-':
			return arg1 - arg2;
			break;
		case '*':
		default:
			return arg1 * arg2;
		}
	};
	while (true)
	{
		std::stringstream ans("0");
		int arg[4];
		std::cin >> arg[0] >> arg[1] >> arg[2] >> arg[3];
		if (arg[0] == 0 && arg[1] == 0 && arg[2] == 0 && arg[3] == 0)
		{
			break;
		}
		for (int i = 0; i < 4; i++)
		{
			for (int j = 0; j < 4; j++)
			{
				if (j == i)continue;
				for (int k = 0; k < 4; k++)
				{
					if (k == i || k == j)continue;
					for (int l = 0; l < 4; l++)
					{
						if (l == i || l == j || l == k)continue;
						for (auto op1 : "+-*")
						{
							for (auto op2 : "+-*")
							{
								for (auto op3 : "+-*")
								{
									if (calc(calc(calc(arg[i], op1, arg[j]), op2, arg[k]), op3, arg[l]) == 10)
									{
										ans.str("");
										ans << '(' << '(' << arg[i] << op1 << arg[j] << ')' << op2 << arg[k] << ')' << op3 << arg[l];
										goto breakpoint;
									}
									else if (calc(calc(arg[i], op1, arg[j]), op2, calc(arg[k], op3, arg[l])) == 10)
									{
										ans.str("");
										ans << '(' << arg[i] << op1 << arg[j] << ')' << op2 << '(' << arg[k] << op3 << arg[l] << ')';
										goto breakpoint;
									}
									else if (calc(calc(arg[i], op1, calc(arg[j], op2, arg[k])), op3, arg[l]) == 10)
									{
										ans.str("");
										ans << '(' << arg[i] << op1 << '(' << arg[j] << op2 << arg[k] << ')' << ')' << op3 << arg[l];
										goto breakpoint;
									}
									else if (calc(arg[i], op1, calc(calc(arg[j], op2, arg[k]), op3, arg[l])) == 10)
									{
										ans.str("");
										ans << arg[i] << op1 << '(' << '(' << arg[j] << op2 << arg[k] << ')' << op3 << arg[l] << ')';
										goto breakpoint;
									}
									else if (calc(arg[i], op1, calc(arg[j], op2, calc(arg[k], op3, arg[l]))) == 10)
									{
										ans.str("");
										ans << arg[i] << op1 << '(' << arg[j] << op2 << '(' << arg[k] << op3 << arg[l] << ')';
										goto breakpoint;
									}
								}
							}
						}
					}
				}
			}
		}
	breakpoint:
		std::cout << ans.str() << std::endl;
	}
	return 0;
}
