#include <stdio.h>


int calc(int a,int b,int mark){
    if(mark==0){
        return(a+b);
    }
    if(mark==1){
        return(a-b);
    }
    else{
        return(a*b);
    }
    
}

int judge(int a,int b,int c,int d){
    int i,j,k,ans[3];
    char mark[3]={'+','-','*'};
    
// (((a i b) j c) k d)
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                ans[0]=calc(a,b,i);
                ans[1]=calc(ans[0],c,j);
                ans[2]=calc(ans[1],d,k);
                //printf("ans(((%d %c %d) %c %d) %c %d)=%d\n",a,mark[i],b,mark[j],c,mark[k],d,ans[2]);
                if(ans[2]==10){
                    printf("(((%d %c %d) %c %d) %c %d)\n",a,mark[i],b,mark[j],c,mark[k],d);
                    return 1;
                }
            }
        }
    }
    
    
//((a i b) j (c k d))
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                ans[0]=calc(a,b,i);
                ans[1]=calc(c,d,k);
                ans[2]=calc(ans[0],ans[1],j);
                //printf("ans((%d %c %d) %c (%d %c %d))=%d\n",a,mark[i],b,mark[j],c,mark[k],d,ans[2]);
                if(ans[2]==10){
                    printf("((%d %c %d) %c (%d %c %d))\n",a,mark[i],b,mark[j],c,mark[k],d);
                    return 1;
                }
            }
        }
    }

    //((a i (b j c)) k d)
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                ans[0]=calc(b,c,j);
                ans[1]=calc(a,ans[0],i);
                ans[2]=calc(ans[1],d,k);
                //printf("ans((%d %c (%d %c %d)) %c %d)=%d\n",a,mark[i],b,mark[j],c,mark[k],d,ans[2]);
                if(ans[2]==10){
                    printf("((%d %c (%d %c %d)) %c %d)\n",a,mark[i],b,mark[j],c,mark[k],d);
                    return 1;
                }
            }
        }
    }

//(a i ((b j c) k d))
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                ans[0]=calc(b,c,j);
                ans[1]=calc(ans[0],d,k);
                ans[2]=calc(a,ans[1],i);
                //printf("ans(%d %c ((%d %c %d) %c %d))=%d\n",a,mark[i],b,mark[j],c,mark[k],d,ans[2]);
                if(ans[2]==10){
                    printf("(%d %c ((%d %c %d) %c %d))\n",a,mark[i],b,mark[j],c,mark[k],d);
                    return 1;
                }
            }
        }
    }

//(a i (b j (c k d)))
    for(i=0;i<3;i++){
        for(j=0;j<3;j++){
            for(k=0;k<3;k++){
                ans[0]=calc(c,d,k);
                ans[1]=calc(b,ans[0],j);
                ans[2]=calc(a,ans[1],k);
                //printf("ans(%d %c (%d %c (%d %c %d)))=%d\n",a,mark[i],b,mark[j],c,mark[k],d,ans[2]);
                if(ans[2]==10){
                    printf("(%d %c (%d %c (%d %c %d)))\n",a,mark[i],b,mark[j],c,mark[k],d);
                    return 1;
                }
            }
        }
    }
    
    return 0;
}

int main(int argc, const char * argv[]) {
    int a,b,c,d,n=0,flag=0;
    
    
    while(1){
        scanf("%d %d %d %d",&a,&b,&c,&d);
        if(a==0&&b==0&&c==0&&d==0){
            break;
        }
        
        while(n!=24){
            switch(n){
                case 0:
                    flag=judge(a,b,c,d);
                    if(flag==1)
                        break;
                case 1:
                    flag=judge(a,b,d,c);
                    if(flag==1)
                        break;
                case 2:
                    flag=judge(a,c,b,d);
                    if(flag==1)
                        break;
                case 3:
                    flag=judge(a,c,d,b);
                    if(flag==1)
                        break;
                case 4:
                    flag=judge(a,d,b,c);
                    if(flag==1)
                        break;
                case 5:
                    flag=judge(a,d,c,b);
                    if(flag==1)
                        break;
                case 6:
                    flag=judge(b,a,c,d);
                    if(flag==1)
                        break;
                case 7:
                    flag=judge(b,a,d,c);
                    if(flag==1)
                        break;
                case 8:
                    flag=judge(b,c,a,d);
                    if(flag==1)
                        break;
                case 9:
                    flag=judge(b,c,d,a);
                    if(flag==1)
                        break;
                case 10:
                    flag=judge(b,d,a,c);
                    if(flag==1)
                        break;
                case 11:
                    flag=judge(b,d,c,a);
                    if(flag==1)
                        break;
                case 12:
                    flag=judge(c,a,b,d);
                    if(flag==1)
                        break;
                case 13:
                    flag=judge(c,a,d,b);
                    if(flag==1)
                        break;
                case 14:
                    flag=judge(c,b,a,d);
                    if(flag==1)
                        break;
                case 15:
                    flag=judge(c,b,d,a);
                    if(flag==1)
                        break;
                case 16:
                    flag=judge(c,d,a,b);
                    if(flag==1)
                        break;
                case 17:
                    flag=judge(c,d,b,a);
                    if(flag==1)
                        break;
                case 18:
                    flag=judge(d,a,b,c);
                    if(flag==1)
                        break;
                case 19:
                    flag=judge(d,a,c,b);
                    if(flag==1)
                        break;
                case 20:
                    flag=judge(d,b,a,c);
                    if(flag==1)
                        break;
                case 21:
                    flag=judge(d,b,c,a);
                    if(flag==1)
                        break;
                case 22:
                    flag=judge(d,c,a,b);
                    if(flag==1)
                        break;
                case 23:
                    flag=judge(d,c,b,a);
                    if(flag==1)
                        break;
            }
            n++;
            if(flag==1)
                break;
        }
        if(flag==0)
            printf("0\n");
        n=0;
        
    }
    
    return 0;
}

Measured memory_bytes: 1816