明明进了中学之后,学到了代数表达式。有一天,他碰到一个很麻烦的选择题。这个题目的题干中首先给出了一个代数表达式,然后列出了若干选项,每个选项也是一个代数表达式,题目的要求是判断选项中哪些代数表达式是和题干中的表达式等价的。
这个题目手算很麻烦,因为明明对计算机编程很感兴趣,所以他想是不是可以用计算机来解决这个问题。假设你是明明,能完成这个任务吗?
这个选择题中的每个表达式都满足下面的性质:
下面是一些合理的表达式的例子:
((a^1) ^ 2)^3,a*a+a-a,((a+a)),9999+(a-a)*a,1 + (a -1)^3,1^10^9……
第一行给出的是题干中的表达式。第二行是一个整数 $n(2 \le n \le 26)$,表示选项的个数。后面 $n$ 行,每行包括一个选项中的表达式。这 $n$ 个选项的标号分别是 A,B,C,D……输入中的表达式的长度都不超过 50 个字符,而且保证选项中总有表达式和题干中的表达式是等价的。
包括一行,这一行包括一系列选项的标号,表示哪些选项是和题干中的表达式等价的。选项的标号按照字母顺序排列,而且之间没有空格。
( a + 1) ^2 3 (a-1)^2+4*a a + 1+ a a^2 + 2 * a * 1 + 1^2 + 10 -10 +a -a
AC
【数据规模】
对于 30% 的数据,表达式中只可能出现两种运算符 ‘+’ 和 ‘-’;
对于其它的数据,四种运算符 ‘+’,‘-’,‘*’,‘^’ 在表达式中都可能出现。
对于全部的数据,表达式中都可能出现小括号 ‘(’ 和 ‘)’。