def choose(cands: list[str]): c = len(cands) for i in range(c): yield cands[i], cands[:i] + cands[i + 1 :] def calcs(a: int, b: int): yield a + b, "+" yield a - b, "-" yield a * b, "*" if b != 0: yield a // b, "/" def dfs(cands: list[str], x=None, logs: list[tuple[str, int]] = []): if len(cands) == 0: return logs if x == 24 else None if x is None: for c, cs in choose(cands): e = dfs(cs, M[c], logs + [(c, M[c])]) if e is not None: return e else: for c, cs in choose(cands): for r, op in calcs(x, M[c]): e = dfs(cs, r, logs + [(op + c, r)]) if e is not None: return e M = { "3": 3, "4": 4, "5": 5, "6": 6, "7": 7, "8": 8, "9": 9, "10": 10, "J": 11, "Q": 12, "K": 13, "A": 1, "2": 2, } s = input().split() if "joker" in s or "JOKER" in s: print("ERROR") else: logs = dfs(s) # print(logs) print("".join(x[0] for x in logs) if logs is not None else "NONE")