小 Z 的栈函数

题目描述

小 Z 最近发现了一个神奇的机器,这个机器的所有操作都是通过维护一个栈来完成的,它支持如下 11 个操作: - $\texttt{NUM} ~x$:栈顶放入 $x$。 - $\texttt{POP}$:抛弃栈顶元素。 - $\texttt{INV}$:将栈顶元素取出,然后放入它的相反数。 - $\texttt{DUP}$:再放入一个和栈顶元素相同的数。 - $\texttt{SWP}$:交换栈顶的两个元素。 - $\texttt{ADD}$:取出栈顶的两个元素,两元素相加,所得结果放入栈内。 - $\texttt{SUB}$:取出栈顶的两个元素,第二个元素减去第一个元素,所得结果放入栈内。 - $\texttt{MUL}$:取出栈顶的两个元素,两元素相乘,所得结果放入栈内。 - $\texttt{DIV}$:取出栈顶的两个元素,第二个元素整除以第一个元素,所得结果放入栈内。 - $\texttt{MOD}$:取出栈顶的两个元素,第二个元素取模以第一个元素,所得结果放入栈内。 - $\texttt{END}$:结束这个程序。 然后,小 Z 用上面的 11 种操作写了一个一元函数 $f(x)$。$x$ 就是放入栈里面第一个初始元素。然后经过这个函数的一系列操作,当函数结束的时候,正常情况下,栈里面会有唯一的一个元素。剩下的这个元素就作为函数 $f(x)$ 的返回值。 小 Z 有 $n$ 个询问,询问每个值 $x$ 经过上述函数所映射出的 $f(x)$ 是多少。但是这个由于机器太老了,跑起东西来太慢了,小 Z 又是一个急性子,所以请你们写一个程序,来帮助小 Z 计算他查询的 $f(x)$。 还有,由于这台机器太破了,所以如果运算过程中有数字的绝对值大于 $1000000000$,机器将产生故障。

输入输出格式

输入格式


输入首先有若干行,仅包含上述 11 个操作,用来描述函数 $f(x)$ 的操作,函数的结束保证以 $\texttt{END}$ 结尾. 接下来有一个整数,表示询问的个数 $n$。 接下来 $n$ 行,每行一个整数 $x$,表示询问 $f(x)$ 的值。 **输入数据不保证合法**。

输出格式


输出 $n$ 行,每行表示一个询问的结果。按如下规则输出: - 如果最后栈内不是一个元素,输出 `ERROR`。 - 如果运算过程中有数字的绝对值大于 $1000000000$,输出 `ERROR`。 - 如果输入数据不合法,导致中途退出,输出 `ERROR`。 - 否则输出对应的 $f(x)$。

输入输出样例

输入样例 #1

NUM 600000000
ADD
END
3
0
600000000
1

输出样例 #1

600000000
ERROR
600000001

说明

### 数据规模与约定 对于全部测试点,保证函数的操作步数不超过 $2000$,$1 \leq n \leq 2000$,$|x| \leq 10^{9}$。