我们定义 1-表达式为仅包含数字 1、加号、乘号和括号的数值表达式。在此类表达式中,任意两个数字不能相邻——每两个 1 之间必须由一个运算符隔开。我们遵循通常的表达式求值顺序——例如,乘法的优先级高于加法。
例如,以下每个 1-表达式的计算结果均为 6:
$(1+1)*(1+1+1), (1+1+1)*(1+1)*1, ((1+1)+1)*(1+1), 1+1+1+1+1+1, 1+(1+(1+(1+(1+1))))$。
形式上,以下文法描述了所有正确的 1-表达式 $E$:
$E ::= 1 \mid E+E \mid E*E \mid (E+E) \mid (E*E)$
编写一个程序,给定一个整数 $k$ ($k \le 10^9$),输出一个计算结果为 $k$ 且包含最多 100 个 1 的 1-表达式。
输入格式
输入的第一行包含一个整数 $t$ ($1 \le t \le 100$),表示测试用例的数量。
接下来的 $t$ 行,每行描述一个测试用例。第 $i$ 行包含一个整数 $k_i$ ($1 \le k_i \le 10^9$)。
输出格式
你应该输出恰好 $t$ 行。
如果不存在计算结果为 $k_i$ 且包含最多 100 个 1 的 1-表达式,则在第 $i$ 行输出 NO。否则,该行应包含所需的解。表达式内不应包含任何空格。如果存在多个正确的解,输出其中任意一个即可。
样例
输入 1
2 6 10
输出 1
(1+1)*(1+1+1) 1+1+1+1+1+1+1+1+1+1