class NumStr {
	double n;
	String s;

	NumStr(int i) {
		n = i;
		s = "" + i;
	}
	NumStr() {
	}

	NumStr add(NumStr a) {
		NumStr r;
		r = new NumStr();
		r.n = n + a.n;
		r.s = "(" + s + "+" + a.s + ")";
		return r;
	}
	NumStr sub(NumStr a) {
		NumStr r;
		r = new NumStr();
		r.n = n - a.n;
		r.s = "(" + s + "-" + a.s + ")";
		return r;
	}
	NumStr mul(NumStr a) {
		NumStr r;
		r = new NumStr();
		r.n = n * a.n;
		r.s = "(" + s + "*" + a.s + ")";
		return r;
	}
	NumStr div(NumStr a) {
		NumStr r;
		r = new NumStr();
		r.n = n / a.n;
		r.s = "(" + s + "/" + a.s + ")";
		return r;
	}
}

public class Make10 {

	static void recur(NumStr nums[]) {
		int i, j, k, l;

		if (nums.length == 1) {
			if (Math.abs(nums[0].n - 10) < 1e-03) {
				System.out.println(nums[0].s);
			}
		}

		NumStr newnums[];
		newnums = new NumStr[nums.length - 1];
		for (i = 0; i < nums.length - 1; i++) {
			for (j = i+1; j < nums.length; j++) {
				l = 0;
				for (k=0; k < nums.length; k++) {
					if ((k!=i)&&(k!=j)) newnums[l++] = nums[k];
				}
				newnums[l] = nums[i].add(nums[j]);
				recur(newnums);
				newnums[l] = nums[i].sub(nums[j]);
				recur(newnums);
				newnums[l] = nums[j].sub(nums[i]);
				recur(newnums);
				newnums[l] = nums[i].mul(nums[j]);
				recur(newnums);
				if (Math.abs(nums[j].n) > 1e-3) {
					newnums[l] = nums[i].div(nums[j]);
					recur(newnums);
				}
				if (Math.abs(nums[i].n) > 1e-3) {
					newnums[l] = nums[j].div(nums[i]);
					recur(newnums);
				}
			}
		}
	}

	public static void main(String args[]) {
		if ((args.length != 1) || (args[0].length() != 4)) {
			System.out.println("usage Make10 nnnn");
			return;
		}
		NumStr a[];
		a = new NumStr[4];
		for (int i=0; i<4; i++) {
			a[i] = new NumStr(Integer.parseInt(args[0].substring(i, i + 1)));
		}
		recur(a);
	}
}
