#include <bits/stdc++.h>
using namespace std;

int f(int a, char c, int b) {
  if (c == '+') return a + b;
  if (c == '-') return a - b;
  if (c == '*') return a * b;
}

bool ans(string s, vector<int> a) {
  if (f(f(f(a[0], s[0], a[1]), s[1], a[2]), s[2], a[3]) == 10) {
    printf("(((%d %c %d) %c %d) %c %d)\n", a[0], s[0], a[1], s[1], a[2], s[2], a[3]);
    return true;
  }
  if (f(f(a[0], s[0], f(a[1], s[1], a[2])), s[2], a[3]) == 10) {
    printf("((%d %c (%d %c %d)) %c %d)\n", a[0], s[0], a[1], s[1], a[2], s[2], a[3]);
    return true;
  }
  if (f(f(a[0], s[0], a[1]), s[1], f(a[2], s[2], a[3])) == 10) {
    printf("((%d %c %d) %c (%d %c %d))\n", a[0], s[0], a[1], s[1], a[2], s[2], a[3]);
    return true;
  }
  if (f(a[0], s[0], f(f(a[1], s[1], a[2]), s[2], a[3])) == 10) {
    printf("(%d %c ((%d %c %d) %c %d))\n", a[0], s[0], a[1], s[1], a[2], s[2], a[3]);
    return true;
  }
  if (f(a[0], s[0], f(a[1], s[1], f(a[2], s[2], a[3]))) == 10) {
    printf("(%d %c (%d %c (%d %c %d)))\n", a[0], s[0], a[1], s[1], a[2], s[2], a[3]);
    return true;
  }

  return false;
}

bool symbol(vector<int> &a, string s = "") {
  if (s.size() == 3) {
    return ans(s, a);
  }
  vector<string> sym({"+", "-", "*"});
  for (int i = 0; i < 3; ++i) {
    if (symbol(a, s + sym[i])) return true;
  }

  return false;
}

void solver(vector<int> a) {
  int cnt = 0;
  do {
    if (symbol(a)) return;
    cnt++;
    next_permutation(a.begin(), a.end());
  } while ( cnt < 100 );
  puts("0");
}

int main() {
  vector<int> a(4);
  while (cin >> a[0] >> a[1] >> a[2] >> a[3], a[0] + a[1] + a[2] + a[3]) {
    solver(a);
  }
}