Peter 是一位小学数学老师。为了让学生熟悉加法 ($+$)、减法 ($-$) 和乘法 ($\times$) 这三种基本算术运算,他布置了一个简单的算术谜题作为家庭作业。谜题的内容是:给定 4 个数字,要求仅使用这 4 个数字以及至少一种基本算术运算,构建出尽可能多的非负整数。例如,给定数字 1, 1, 2, 1,可以构建出 32 个非负整数,如表 1 所示。
表 1:由 1, 1, 2, 1 构建的数字。
| $0 = 2 - 1 - 1 \times 1$ | $22 = 21 + 1 \times 1$ |
| $1 = 2 + 1 - 1 - 1$ | $23 = 21 + 1 + 1$ |
| $2 = 2 + 1 - 1 \times 1$ | $32 = 21 + 11$ |
| $3 = 2 + 1 + 1 - 1$ | $109 = 111 - 2$ |
| $4 = 2 + 1 + 1 \times 1$ | $111 = 112 - 1$ |
| $5 = 2 + 1 + 1 + 1$ | $112 = 112 \times 1$ |
| $8 = 11 - 2 - 1$ | $113 = 112 + 1$ |
| $9 = 11 - 2 \times 1$ | $120 = 121 - 1$ |
| $10 = 12 - 1 - 1$ | $121 = 121 \times 1$ |
| $11 = 12 - 1 \times 1$ | $122 = 121 + 1$ |
| $12 = 12 + 1 - 1$ | $132 = 12 \times 11$ |
| $13 = 12 + 1 \times 1$ | $210 = 211 - 1$ |
| $14 = 12 + 1 + 1$ | $211 = 211 \times 1$ |
| $19 = 21 - 1 - 1$ | $212 = 211 + 1$ |
| $20 = 21 - 1 \times 1$ | $222 = 111 \times 2$ |
| $21 = 21 + 1 - 1$ | $231 = 21 \times 11$ |
为了检查学生的答案是否包含了所有可能的整数,Peter 需要知道该谜题可以构建出的非负整数的总数。请编写一个程序来帮助 Peter 计算这个总数。
输入格式
输入包含一行,由空格分隔的 4 个整数,表示给定的数字。
输出格式
输出可以构建出的非负整数的总数。
实现细节
- 表达式由 4 个给定的数字和至少一个 $\{+, -, \times\}$ 中的运算组成。给定的数字均为 $\{1, 2, 3, \dots, 9\}$ 中的元素。
- 给定的数字被划分为若干组,每组中的数字按任意排列顺序连接成一个数。
- 符号 $-$ 只能作为减法运算符使用。
- 运算 $+$ 和 $-$ 具有相同的优先级。
- 运算 $\times$ 的优先级高于 $+$ 和 $-$。
- 优先级最高的运算先进行计算,优先级相同的运算按从左到右的顺序进行计算。
样例
样例输入 1
1 1 1 1
样例输出 1
15
样例输入 2
1 1 2 1
样例输出 2
32