#include <iostream>
#include <stdio.h>
#include <string>
using namespace std;

int cal(int e,int f,int g) {
	int h;
	switch (g) {
		case 0: h=e+f; break;
		case 1: h=e-f; break;
		case 2: h=e*f; break;
	}
	return h;
}
int main() {
	int i,j,k,m,a,b,c,d,e,sk[4],da[4];
  char y[3]={'+','-','*'};
  while(true) {
	  cin >> sk[0] >> sk[1] >> sk[2] >> sk[3];
	  if (sk[0]==0 && sk[1]==0 && sk[2]==0 && sk[3]==0) break;
  for (i=0;i<4;i++)  for (j=0;j<4;j++) 
	  for (k=0;k<4 && j!=i;k++) for (m=0;m<4 && k!=i && k!=j;m++) {
				  if (m==i || m==j || m==k) continue;
				  da[0]=sk[i]; da[1]=sk[j]; da[2]=sk[k]; da[3]=sk[m];
				  for (a=0;a<3;a++) for (b=0;b<3;b++) 
					  for (c=0;c<3;c++) for (d=0;d<3;d++) {
						  switch (d) {
							  case 0: 
                               e=cal(da[0],da[1],a);
							   if (c==2) e=cal(e,cal(da[2],da[3],c),b); else e=cal(cal(e,da[2],b),da[3],c); 
                               if (e==10) printf("(%d%c%d)%c%d%c%d\n",da[0],y[a],da[1],y[b],da[2],y[c],da[3]);
							   break;
							  case 1:
							   if (b==2) e=cal(da[0],cal(da[1],da[2],b),a); else e=cal(cal(da[0],da[1],a),da[2],b);
							   e=cal(e,da[3],c);
                               if (e==10) printf("(%d%c%d%c%d)%c%d\n",da[0],y[a],da[1],y[b],da[2],y[c],da[3]);
							   break;
							  case 2:
                               e=cal(cal(da[0],da[1],a),cal(da[2],da[3],c),b);
                               if (e==10) printf("(%d%c%d)%c(%d%c%d)\n",da[0],y[a],da[1],y[b],da[2],y[c],da[3]);
                               break;                             
					  }
						  if (e==10) { a=b=c=d=i=j=k=m=10; break;}
	       		 }
	  }
	  if (a<6) cout << 0 << endl;
  }
  return 0;
}